Я использую activemq (довольно новый для меня), и у меня есть один продюсер и несколько потребителей.Как создать отдельную очередь для каждого потребителя, который у меня есть в activemq?
Вещь, я хочу обращаться к сообщениям для конкретных потребителей. Я читал около selectors, но также прочитал, что it is a bad practice использовать, а также прочитать около alternatives.
Альтернатива звучит хорошо для меня, но я не уверен, как я могу создать эти очереди для каждого из моих рабов. Каждый из моих рабов имеет идентификатор (UUID), что я могу использовать, когда я создаю слушателя - как это:
<jms:listener-container
container-type="default"
connection-factory="jmsConnectionFactory"
acknowledge="auto">
<jms:listener destination="slave.tasks.${slave.id}" ref="jmsActivityListener" method="onMessage" />
</jms:listener-container>
Это требует slave.properties файл содержит следующую запись:
slave.id=XXXXXXX
Мои вопросы:
1) это способ сделать это (определение очереди за потребителя)?
2) Как я могу сгенерировать это значение salve.id (я не хочу, чтобы пользователь заполнял его, поскольку он должен быть уникальным)?
Благодаря
Спасибо за ответ, но я думаю, что это не решит мою проблему - так как я хотел бы послать сообщение конкретного потребителя (не всех).Если я это правильно понимаю, это скорее решение темы, которое я хочу избежать, поскольку сообщение должно быть отправлено одному потребителю (из, скажем, 100), поэтому я бы не хотел использовать тему (среди прочих причин) – Noam
, если вы используете user/pwd в jmsConnectionFactory с ролью админов, ваши цели будут созданы автоматически во время выполнения, но вам нужно найти решение для сопоставления каждого потребителя с их идентификатором. –
Да - я знаю, что и использую администраторы доверяют. но мне нужен способ настроить слушателей в подчиненной части - в этом отношении мне нужно знать идентификатор, который не является частью конфигурации (как я уже упоминал в моем вопросе) – Noam