2015-10-14 4 views
1

Мы используем ActiveMQ, и мы ищем способ обеспечить соблюдение политики одного потребителя для некоторых наших очередей JMS. Я провел некоторое время в Google, но я не могу найти способ ограничить количество потребителей в очереди.Как ограничить количество пользователей в очереди JMS ActiveMQ

либо из следующих бы хорошие решения для нас:

  • Способ указать максимальное количество активных потребителей по очереди (в нашем случае 1).
  • Способ опроса ActiveMQ, чтобы узнать, готовы ли какие-либо потребители к очереди перед созданием нового.

Благодаря

ответ

1

Там нет настроек на стороне брокера обеспечивать такую ​​вещь. Тем не менее, во всех клиентах вы можете использовать эксклюзивный потребительский вариант. Это позволит всем потребителям подключаться, но только один на самом деле получит все сообщения, пока не выпадет, и выбран новый эксклюзивный потребитель.

Если вы намерены разместить какое-то облачное обслуживание AMQ и действительно хотите, чтобы приложения, находящиеся вне вашего контроля, вели себя в соответствии с SLA, тогда вам нужно сделать некоторую кодировку. Вы можете использовать плагины ActiveMQ.

Если вы реализуете плагин и создаете BrokerFilter, вы можете переопределить `addConsumer? метод. Взгляните на RuntimeConfigurationPlugin, чтобы узнать, как настроить плагин.

Пожалуйста, не следует, что реализация плагина не простая настройка администратора, но требует некоторой работы.

+0

Мы контролируем всю экосистему. Брокеры AMQ, производители и потребитель - все наши собственные приложения и инфраструктура. Поэтому меня не интересует поддержка неизвестных приложений. Однако из-за некоторых ограничений в нашей проблемной области мы рискуем создать более 1 потребителя сообщений в очереди, и мы хотим предотвратить это. Знаете ли вы о каком-либо механизме опроса AMQ о существующих потребителях для очереди? Я считаю, что это возможно, поскольку вы можете просматривать информацию о потребителях на страницах администрирования AMQ. Спасибо –

Смежные вопросы