我使用的是 Artemis 1.5.3,我的寻址方案是 jms.topic.xxx 用于 pub-sub 和 jms.queue.xxx 用于点对点,一切都很好。但是,我切换到 2.1.0 版本并且 jms.topic.xxx 像点对点路由一样工作,这意味着并非所有订阅者都会收到消息。以前,我使用的是 ActiveMQ,它们的命名前缀是 /topic.xxx 和 /queue.xxx。我还尝试根据 activemq.apache.org/artemis/docs/2.1.0/address-model.html 在 broker.xml 中设置多播配置,但 Artemis 抱怨并且不会启动。任何帮助将非常感激。
问问题
447 次
1 回答
0
在没有查看日志中实际错误的情况下,我将假设您的实例没有启动,因为您定义队列和/或主题的方式。在 2.x 和更新的版本中,Artemis 改变了您定义队列或主题的方式(他们切换到地址模型http://activemq.apache.org/artemis/docs/2.1.0/address-model.html)。下面是一个例子。我希望这有帮助。
..... 其余的 broker.xml 配置
<addresses>
<!-- default queues for artemis -->
<address name="DLQ">
<anycast>
<queue name="DLQ" />
</anycast>
</address>
<address name="ExpiryQueue">
<anycast>
<queue name="ExpiryQueue" />
</anycast>
</address>
<!-- Define topics -->
<address name="SomeTestTopic">
<multicast/>
</address>
<!-- Define queues -->
<address name="RequestReplyQueue">
<anycast>
<queue name="RequestReplyQueue" />
</anycast>
</address>
</addresses>
于 2017-06-07T21:55:18.050 回答