Могу ли я сохранить порядок сообщений в OpenMQ, используя несколько издателей и одного получателя?

Я хочу войти, используя OpenMQ от GlassFish. Я думаю, что мои компоненты могут помещать сообщения в эту очередь, и если из нее потребляет только один mdb, я должен иметь возможность получать все сообщения в том порядке, в котором они были помещены в очередь. Будет ли это работать и как сохранить порядок сообщений?

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

Стенограмма слайда 8:

Что такое JMS? • API на основе Java для промежуточного программного обеспечения, ориентированного на сообщения. • Используются следующие понятия (среди прочего) > Порядок сообщений гарантируется > Уровень надежности определяется при отправке сообщения> Поддерживаются транзакции (группирование сообщений, которые должны отправляться или создаваться вместе) > Формат сообщения определяется производитель> Предоставляет два стиля доставки сообщений (точка-точка и публикация-подписка). Авторские права Sun Microsystems Inc. Все права защищены. [8]

http://www.slideshare.net/alexismp/openmq-aquarium-paris-presentation

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

Увидеть:

1 ответ

Решение

Я не буду беспокоиться об обеспечении порядка в самой очереди. Просто включите поле метки времени в полезную нагрузку вашего сообщения и выполните сортировку по факту. Это становится проблемой только тогда, когда дополнительные данные неприемлемы в условиях чрезвычайно высокого трафика, но в таких случаях может иметь смысл в любом случае временно вернуться к локальной регистрации.

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

Другие вопросы по тегам