当前位置: 首页 > 知识库问答 >
问题:

从ActiveMQ“Classic”5.15.9迁移到ActiveMQ Artemis 2.17.0

贾飞章
2023-03-14

给定简单的配置:

  • 服务器-ActiveMQ
  • 客户1——制作人。使用OPENWIRE协议发送消息
  • 客户2——消费者。使用STOMP协议接收消息

只要我们使用ActiveMQ 5.15.9,它就可以正常工作。但是它不适用于Artemis。在Artemis图形用户界面中,我可以看到,OPENWIRE协议使用名称为VirtualTopic的多播队列。一些。主题。名称和STOMP协议的消费者使用名称为/主题/VirtualTopic的多播队列。一些。主题。名称。当客户端1(生产者)发送消息时,我可以看到这个DEBUG日志条目:

2022-02-17 09:57:36,642 DEBUG [org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl] Couldn't find any bindings for address=VirtualTopic.Some.Topic.Name on message=CoreMessage[messageID=12884902991,durable=true,userID=a71cfe57-8fcf-11ec-8d24-e470b8b47a8a,priority=4, timestamp=Thu Feb 17 09:57:36 CET 2022,expiration=0, durable=true, address=VirtualTopic.Some.Topic.Name,size=1259,properties=TypedProperties[__AMQ_CID=ID:D118010-54523-637806885913733333-0:0,_AMQ_GROUP_SEQUENCE=0,__HDR_BROKER_IN_TIME=1645088256634,_AMQ_ROUTING_TYPE=0,__HDR_ARRIVAL=0,__HDR_COMMAND_ID=9,__HDR_PRODUCER_ID=[0000 003B 7B01 0027 4944 3A44 3131 3830 3130 2D35 3435 3233 2D36 3337 3830  ... 35 3931 3337 3333 3333 332D 313A 3000 0000 0000 0000 0100 0000 0000 0000 01),__HDR_MESSAGE_ID=[0000 004E 6E00 017B 0100 2749 443A 4431 3138 3031 302D 3534 3532 332D 3633  ...  0000 0000 0001 0000 0000 0000 0001 0000 0000 0000 0001 0000 0000 0000 0000),__HDR_DROPPABLE=false]]@7144975
2022-02-17 09:57:36,643 DEBUG [org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl] Message CoreMessage[messageID=12884902991,durable=true,userID=a71cfe57-8fcf-11ec-8d24-e470b8b47a8a,priority=4, timestamp=Thu Feb 17 09:57:36 CET 2022,expiration=0, durable=true, address=VirtualTopic.Some.Topic.Name,size=1259,properties=TypedProperties[__AMQ_CID=ID:D118010-54523-637806885913733333-0:0,_AMQ_GROUP_SEQUENCE=0,__HDR_BROKER_IN_TIME=1645088256634,_AMQ_ROUTING_TYPE=0,__HDR_ARRIVAL=0,__HDR_COMMAND_ID=9,__HDR_PRODUCER_ID=[0000 003B 7B01 0027 4944 3A44 3131 3830 3130 2D35 3435 3233 2D36 3337 3830  ... 35 3931 3337 3333 3333 332D 313A 3000 0000 0000 0000 0100 0000 0000 0000 01),__HDR_MESSAGE_ID=[0000 004E 6E00 017B 0100 2749 443A 4431 3138 3031 302D 3534 3532 332D 3633  ...  0000 0000 0001 0000 0000 0000 0001 0000 0000 0000 0001 0000 0000 0000 0000),__HDR_DROPPABLE=false]]@7144975 is not going anywhere as it didn't have a binding on address:VirtualTopic.Some.Topic.Name

我们的用例是,我们有一个后端服务器,通过ActiveMQ和X消费者发送事件。使用虚拟主题的决定是由另一个团队做出的。我真的不知道他们消耗事件的方式。在我这边,我有一个模拟器,它消耗事件并伪造子系统。

当客户使用不同的协议时,是否有可能使Artemis工作?

共有1个答案

屠昌胤
2023-03-14

我看到您正在为您的STOMP消费者使用/subject/前缀。我建议您在STOMP客户端正在使用的接收器上配置适当的anycastPrefixmulticastPrefix设置。这些设置控制代理在自动创建地址时使用的语义学

xml prettyprint-override"><acceptor name="stomp">tcp://0.0.0.0:61613?protocols=STOMP;useEpoll=true;anycastPrefix=/queue/;multicastPrefix=/topic/</acceptor>

有关更多详细信息,请参阅文档。

当消息被发送到一个多播地址,并且没有绑定到该地址的队列时,您所看到的DEBUG消息是预期的,就像JMS客户端向JMS主题发送消息并且没有JMS订阅者时一样。我认为您可以安全地忽略这些消息。

最后,我建议您转到ActiveMQ Artemis 2.20.0。在2.17.0和2.20.0之间解决了300多个Jiras。

 类似资料:
  • 了解如何将照片和视频从 Lightroom Classic 迁移到 Lightroom - Adobe 的全新一体化服务,专为照片爱好者设计。 如果您之前使用过 Lightroom Classic,那么您应该已经熟悉“目录”这一概念。Lightroom Classic 中的目录是一个数据库(.lrcat 文件),其中包含您的每张照片和任何已导入视频的记录。目录中的记录包括:对照片在系统上的位置的引

  • 我们正在计划从5.x迁移到最新版本(即ActiveMQ Artemis),如果有人已经将Camel作为客户机应用程序,我们需要一些澄清。 我们目前通过Camel ActiveMQ组件进行连接,我在Camel中没有看到任何这样的Artemis组件。我们还有其他组件,如JMS、SJMS、AMQP。有什么想法可以选择和推荐哪一个连接到阿尔忒弥斯吗?我想我可以选择在新版本中使用核心,AMQP协议,如果想离

  • 我继承了一个遗留的EJB应用程序,该应用程序构建为带有会话bean和JPA的EJB3.0。我正在从WebSphere8.0迁移,在那里应用程序没有问题。我已经在WebSphere8.5.5classic上进行了测试,没有任何问题,但是,出于战略原因,我们决定使用WebSphereLiberty。我在应用程序服务器上部署了两个ear文件,一个是前端ear应用程序,另一个是EJB(JPA)应用程序。两

  • 问题内容: 我们的Oracle数据库遇到了严重的性能问题,我们想尝试将其迁移到基于MySQL的数据库(直接使用MySQL,或者最好是Infobright)。 问题是,在我们实际上不知道新数据库的所有功能是否符合我们的需求之前,我们需要让旧系统和新系统至少重叠数周(如果不是几个月)。 因此,这是我们的情况: Oracle数据库由多个表组成,每百万行。白天,实际上有成千上万的语句,我们无法停止迁移。

  • 问题内容: 在我的应用程序中,我从UIWebView迁移到WKWebView,如何为WKWebView重写这些功能? 和 问题答案: UIWebView => WKWebView等效 关于您可以写: 对于:

  • 考虑: 为什么,我怎么才能让它起作用? 我的CPU是i5-10210u(支持AVX-256)。在X64版本/调试中运行。