здесь является упрощенной/схематичной топологией мы создалиJMS топология (Очередь с несколькими потребителями) и сообщение группировки
[Front server 1 (message producer)] [Front server n (message producer)]
| |
|________________ ________________|
| |
[Messaging Server (HornetQ)]
| |
________________| |________________
| |
[Task server 1 (Message Driven Bean)] [Task server n (MDB)]
- Каждый узел (сервер) представляет собой автономный (без кластера) сервера приложений JBoss (Jboss -7), включая сообщение.
- Сервер обмена сообщениями развертывает множество очередей JMS.
- Каждый сервер задач развертывает MDB для каждой очереди со многими потребителями.
- Все производители сообщений используют один и тот же входящий адаптер, причем все пользователи сообщений (MDB) имеют одинаковый исходящий. На самом деле все фронт-узлы абсолютно одинаковы (одни и те же AS, одна и та же конфигурация, одни и те же развернутые артефакты), одинаковые для всех узлов сервера.
Теперь вот моя проблема:
приложение является многопользовательским один для данной очереди, некоторые задачи (обработка сообщений) не должны быть обработаны параллельно для данного арендатора, мы создали поэтому message grouping для обработки этого ограничения. Группа сообщения имя арендатора и устанавливается производителем сообщений при отправке сообщения:
message.setStringProperty("JMSXGroupID", tenantName);
На платформе есть 1000+ арендатор (так 1000+ различные группы сообщений) и для данной очереди 3 потребителя в сервер и 3 сервера задач.
При мониторинге этой очереди на сервере обмена сообщениями мы можем видеть тысячи сообщений в очереди и 9 потребителей. Мы ожидаем, что сообщение будет доставлено с 9 по 9, но на практике количество сообщений о доставке никогда не превысит 1.
В чем проблема? является топологией, подходящей для наших нужд?
Можете ли вы разработать 9 * 9 и подсчет никогда не превышать 1 –