Как отличить разные текстовые сообщения JMS от одной очереди? - PullRequest
0 голосов
/ 07 мая 2019

У меня есть очередь AMQ, к которой я подключаюсь.Издатель отправляет JMS TextMessage.Сообщения бывают разных типов: foo-updated, bar-updated, baz-updated и т. Д., Все в одной очереди.

Тело полезной нагрузки / сообщения - это JSON для всех типов, и их схемы имеют значительное перекрытие (но никакой информации о прямом типе).

Команда издателей сказала: «ищите в строке / тексте сообщения foo, и если оно есть, это сообщение обновляется foo».

Звучитнеправильно.

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

Ответы [ 2 ]

1 голос
/ 09 мая 2019

Если у вас есть влияние на использование тем JMS, вы должны это использовать.Точно так же, как URL-адреса REST, вы можете использовать темы для обозначения ресурсов и действий над ними: foo / create, foo / update, bar / update. Затем JMS-брокер может помочь вам эффективно направлять различные сообщения разным потребителям.Например, один потребитель подписывается на foo/*, другой - на */update

Если вы застряли в очереди, издатель должен добавить дополнительную информацию в качестве свойств заголовка, например, type = foo и action = update.Тогда ваш потребитель может указать JMS-селекторы, такие как "action = 'update'", чтобы получать только некоторые сообщения.

В противном случае вы действительно застряли в просмотре содержимого: - (

1 голос
/ 07 мая 2019

Использовать JMS-сообщения. См .: Селектор сообщений

...