ActiveMQ + Stomp: очередь с несколькими подписчиками

Я взаимодействую с ActiveMQ через STOMP. У меня есть одно приложение, которое публикует сообщения, и второе приложение, которое подписывается и обрабатывает сообщения.

Если я пишу сообщения в очередь, я могу быть уверен, что если у меня есть два получателя, каждое сообщение будет обработано только один раз (потому что, когда сообщение завершено, оно удаляется из очереди), но этот функционал доступен из темы?

Например; У меня есть третье приложение, которое является регистратором. Я хочу, чтобы регистратор получал каждое сообщение, отправляемое издателем, но я также хочу, чтобы ровно один из двух (или трех, или четырех, и т. д.) процессоров также получал сообщение.

Это возможно?

ИЗМЕНИТЬ

Мне приходит в голову, что хорошим способом сделать это было бы иметь тему, в которую пишет издатель, и очередь, которую слушают обработчики, с чем-то, что толкает каждое сообщение из темы в очередь. Может ли ApacheMQ сделать это внутри?


person JP.    schedule 01.02.2013    source источник


Ответы (1)


Вы можете сделать это внутри ActiveMQ, используя Зеркальные очереди, а также использовать Виртуальные темы для некоторых других расширенных семантик маршрутизации. Если вы хотите иметь возможность использовать другие шаблоны обмена сообщениями типа EIP, я бы порекомендовал вам изучить Apache Camel, который предоставляет целый ряд функций шаблона EIP.

person Tim Bish    schedule 01.02.2013