我有一个Red Hat AMQ(基于ActiveMQ Artemis)经纪人,我想利用持久订阅(或等效的)功能,这样我将有多个OpenWire JMS订阅者订阅我们的应用程序事件将会可靠地交付给他们。
我想预先配置订户,这样可以避免在初始应用程序启动时遇到麻烦。我想避免在初始应用程序启动时主应用程序开始运行并在我们的持久订阅者执行其初始订阅之前发布事件的情况。
我还希望避免显式地排序进程的启动顺序。
有什么方法可以预配置持久性订户?在普通的ActiveMQ(不是Artemis)中,有诸如Virtual Topics之类的功能(可以解决)。
ActiveMQ Artemis的首选解决方案是什么?
答案 0 :(得分:1)
由于OpenWire实现以确定性方式(即,使用client-id
。subscription-name
的格式创建用于持久订阅的队列,因此可以预先配置持久订阅。例如,如果要在地址myAddress
上配置持久订阅,其客户端ID为myclientid
,订阅名称为mysubscription
,则配置持久订阅:
<addresses>
<address name="myAddress">
<multicast>
<queue name="myclientid.mysubscription"/>
</multicast>
</address>
</addresses>