Есть ли способ обеспечить использование селектора сообщений JMS? - PullRequest
1 голос
/ 18 апреля 2019

В настоящее время я тестирую очередь JMS (впервые используя JMS) и компоненты, управляемые сообщениями.Я создал очередь для предоставления другим приложениям обновлений состояния для одного из наших проектов.

Логика написана на собственном JMS, развернутом на JBOSS7 с использованием реализации ActiveMQ.

Это зависит отСелектор доставляет сообщения нужному клиенту, и хотя я могу просто доверять своим коллегам, желательно, чтобы я использовал принудительное использование селектора, чтобы клиенты не использовали сообщения, предназначенные не для них.

Поэтому я бы предпочел, чтобы сообщения не доставлялись клиенту, который не указал селектор.

Когда я развертываю потребителя без селектора, он просто потребляет все сообщения, доступные в очереди.

В остальном все работает как положено.

Я посмотрел и не смог найти ничего, что искал, возможно, это возможно, настроив сам ActiveMQ, но я не чувствую себя в этой экосистеме как дома.

1 Ответ

0 голосов
/ 18 апреля 2019

Итак, проблема решена с помощью системы, о которой я не знал, и я решил поделиться ею здесь, если кому-то это понадобится:

Клиенты JMS находятся на разных физических машинах, поэтому изначально планировалось выполнить удаленный поиск JNDI вручную, чтобы получить доступ к очереди, но это вызвало некоторые проблемы. В основном приходится писать логику повторных попыток, когда очередь недоступна.

Я выбросил этот план в окно, чтобы вместо него выбрать Мост, следуя инструкции, найденной здесь: http://www.mastertheboss.com/howto/jboss-jms6/configuring-jms-bridge-with-wildfly-10

У этого есть несколько преимуществ (и система производителя, или клиент могут отключиться, не вызывая слишком много проблем), но, что особенно важно, это решает мою проблему: я могу определить селектор на мосту для каждого Клиента. Так что ответственность за выбор того, кто получает какие сообщения, вернулась в мой суд.

У меня будет трещина в реализации этого.

...