JBoss AMQ / ActiveMQ Artemis:预配置持久订阅者
JBoss AMQ / ActiveMQ Artemis: Pre-configure Durable Subscribers
我有一个 Red Hat AMQ(基于 ActiveMQ Artemis)代理,我想使用持久订阅(或等效)功能,这样我就会有多个 OpenWire JMS 订阅者订阅事件我们的应用程序将可靠地交付给他们。
我想预先配置订阅者,以免我在初始应用程序启动时遇到麻烦。我想避免在我们的持久订阅者执行初始订阅之前启动主应用程序 运行 和发布事件的初始应用程序启动情况。
我还想避免明确订购进程的启动顺序。
有什么方法可以预先配置持久订阅者吗?在普通的 ActiveMQ(不是 Artemis)中,有像 Virtual Topics 这样的功能(某种程度上)解决了这个问题。
ActiveMQ Artemis 的首选解决方案是什么?
可以预先配置持久订阅,因为 OpenWire 实现以确定的方式创建用于持久订阅的队列(即使用 client-id
.subscription-name
的格式)。例如,如果您想在地址 myAddress
上配置持久订阅,客户端 ID 为 myclientid
,订阅名称为 mysubscription
,则配置持久订阅:
<addresses>
<address name="myAddress">
<multicast>
<queue name="myclientid.mysubscription"/>
</multicast>
</address>
</addresses>
我有一个 Red Hat AMQ(基于 ActiveMQ Artemis)代理,我想使用持久订阅(或等效)功能,这样我就会有多个 OpenWire JMS 订阅者订阅事件我们的应用程序将可靠地交付给他们。
我想预先配置订阅者,以免我在初始应用程序启动时遇到麻烦。我想避免在我们的持久订阅者执行初始订阅之前启动主应用程序 运行 和发布事件的初始应用程序启动情况。
我还想避免明确订购进程的启动顺序。
有什么方法可以预先配置持久订阅者吗?在普通的 ActiveMQ(不是 Artemis)中,有像 Virtual Topics 这样的功能(某种程度上)解决了这个问题。
ActiveMQ Artemis 的首选解决方案是什么?
可以预先配置持久订阅,因为 OpenWire 实现以确定的方式创建用于持久订阅的队列(即使用 client-id
.subscription-name
的格式)。例如,如果您想在地址 myAddress
上配置持久订阅,客户端 ID 为 myclientid
,订阅名称为 mysubscription
,则配置持久订阅:
<addresses>
<address name="myAddress">
<multicast>
<queue name="myclientid.mysubscription"/>
</multicast>
</address>
</addresses>