【问题标题】:JBoss AMQ / ActiveMQ Artemis: Pre-configure Durable SubscribersJBoss AMQ / ActiveMQ Artemis:预配置持久订阅者
【发布时间】:2018-11-23 07:33:53
【问题描述】:

我有一个 Red Hat AMQ(基于 ActiveMQ Artemis)代理,我想利用持久订阅(或等效)功能,这样我将有多个 OpenWire JMS 订阅者订阅我们应用程序的事件将可靠地交付给他们。

我想预先配置订阅者,以便在初始应用程序启动时省去我的麻烦。我想避免在我们的持久订阅者执行其初始订阅之前主应用程序开始运行并发布事件的初始应用程序启动的情况。

我还想避免明确排序我的进程的启动顺序。

有什么方法可以预先配置持久订阅者?在普通的 ActiveMQ(不是 Artemis)中,有类似 Virtual Topics 之类的功能可以解决问题。

ActiveMQ Artemis 的首选解决方案是什么?

【问题讨论】:

  • 你用的是什么客户端?
  • 只是想知道这与问题有什么关系?
  • 因为为“持久订阅”创建的队列名称可能因使用的客户端而异。另外,你读过Artemis documentation on this吗?
  • 仅供参考 - STOMP chapter in the Artemis documentation 也讨论了这一点。
  • 我将把它与 JMS 一起使用(啊......我应该在问题中提到它)。 Lemme 将 STOMP 保留在我的代理配置中并尝试是否可行,谢谢。

标签: activemq-artemis amq durable-subscription


【解决方案1】:

可以预先配置持久订阅,因为 OpenWire 实现以确定的方式创建用于持久订阅的队列(即使用 client-id.subscription-name 的格式)。例如,如果您想在地址 myAddress 上配置持久订阅,客户端 ID 为 myclientid,订阅名称为 mysubscription,则配置持久订阅:

<addresses>
   <address name="myAddress">
       <multicast>
        <queue name="myclientid.mysubscription"/>
      </multicast>
   </address>
</addresses>

【讨论】:

  • 非常感谢。它按预期工作。很抱歉迟来的接受,因为我直到现在才有机会测试它:)
猜你喜欢
  • 2019-09-30
  • 2017-01-24
  • 2016-01-14
  • 2017-02-20
  • 2014-10-12
  • 2017-10-31
  • 2015-06-16
  • 2012-06-20
  • 1970-01-01
相关资源
最近更新 更多