0

我使用的是 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 抱怨并且不会启动。任何帮助将非常感激。

4

1 回答 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 回答