JBoss AMQ / ActiveMQ Artemis:预配置持久订阅者

JBoss AMQ / ActiveMQ Artemis: Pre-configure Durable Subscribers

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

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

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

有什么方法可以预先配置持久订阅者吗?在普通的 ActiveMQ(不是 Artemis)中,有像 Virtual Topics 这样的功能(某种程度上)解决了这个问题。

A​​ctiveMQ Artemis 的首选解决方案是什么?

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

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