Как я могу расставить приоритеты сообщений в разных очередях? - PullRequest
2 голосов
/ 10 января 2012

Проблема с выделением ресурсов / приоритезацией.

Я работаю над приложением Java EE, которое имеет несколько управляемых сообщениями компонентов (MDB), которые получают сообщения из разных очередей JMS, скажем, очереди A / MDBA и очередь B / MDB B для простоты.

При высокой нагрузке система должна расставлять приоритеты сообщений, поступающих в очередь A, над сообщениями в очереди B. Почему?Сообщения в очереди A необходимо обрабатывать как можно быстрее, и, следовательно, MDB A нужны "все" ресурсы базы данных, ресурсов процессора и т. Д.

Есть ли у вас какие-либо советы о том, как решить эту проблему в чистом виде?Не так чисто может работать ...

Мой рабочий сервер - WebSphere Application Server 7, использующий SIBus для доставки сообщений.WebSphere MQ может быть вариантом.

Спасибо за любые предложения!

1 Ответ

2 голосов
/ 12 января 2012

После изучения этой проблемы с людьми, которые являются экспертами в этой области, я получил некоторые плохие новости:

Это, вероятно, не может быть сделано.

100% нельзя сделать с помощью SIB. Вы можете назначать приоритеты сообщениям только в пределах одного пункта назначения.

Что касается WebSphere MQ, также кажется, что это невозможно, они имеют свойства только для приоритета очереди, когда имеют дело с одной очередью в кластере, что, я думаю, вам не поможет.

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

...