JBoss AMQ / ActiveMQ Artemis: предварительная настройка надежных подписчиков
У меня есть брокер Red Hat AMQ (основанный на ActiveMQ Artemis), и я хотел бы использовать функцию долговременной подписки (или эквивалентную), чтобы у меня было несколько подписчиков OpenWire JMS, подписывающихся на события нашего приложения, которые будут доставлен им надежно.
Я хотел бы предварительно настроить подписчиков, чтобы избавить меня от проблем при первом запуске приложения. Я хочу исключить случай, когда начальное приложение запускается, когда основное приложение запускается и публикует события до того, как наши постоянные подписчики выполнят свою первоначальную подписку.
Я также хочу избежать упорядочивания последовательности запуска моих процессов.
Можно ли как-то предварительно настроить постоянных абонентов? В обычном ActiveMQ (не Artemis) есть такая функция, как Виртуальные темы, которая (вроде) решает проблему.
Какое решение является предпочтительным для ActiveMQ Artemis?
1 ответ
Можно предварительно настроить долговременные подписки, поскольку реализация OpenWire создает очередь, используемую для долговременной подписки, детерминистическим способом (т. Е. Используя формат client-id
,subscription-name
). Например, если вы хотите настроить постоянную подписку на адрес myAddress
с идентификатором клиента myclientid
и подписное имя mysubscription
затем настройте долговременную подписку:
<addresses>
<address name="myAddress">
<multicast>
<queue name="myclientid.mysubscription"/>
</multicast>
</address>
</addresses>