ActiveMQ – отправка сообщения конкретному потребителю
-
20-09-2019 - |
Вопрос
Наличие одного брокера AMQ и подключенных 100 потребителей.Я бы отправил сообщение какому-то конкретному потребителю, чтобы другие потребители его не получили (фильтрация на стороне клиента не будет работать).
Самый простой способ — создать, например, виртуальные пункты назначения (назовите их очередь:потребитель-) и отправлять туда сообщения.Однако это приведет к появлению 100 новых очередей, что усложнит мониторинг.Есть ли другой способ сделать это с одной очередью?
Решение
Вы можете использовать JMS селекторы.
Вы должны назначить уникальный идентификатор каждому из ваших потребителей, производитель должен будет знать об этих идентификаторах, чтобы отправлять их только конкретному потребителю.Потребители должны сотрудничать и настроить селектор на получение только сообщений, назначенных его собственному идентификатору, а также сообщений, назначенных всем/любому из потребителей.