Не может ли потребитель с длительной подпиской потреблять более 1 сообщения одновременно? - PullRequest
3 голосов
/ 03 апреля 2012

В контейнере приемника сообщений Spring указано:

http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/jms/listener/AbstractMessageListenerContainer.html#setDurableSubscriptionName%28java.lang.String%29

Имя подписки длительного пользования должно быть уникальным в рамках идентификатора клиента JMS этого клиента.По умолчанию это имя класса указанного прослушивателя сообщений.Примечание. Для каждой подписки на длительный срок допускается только 1 одновременный потребитель (который по умолчанию используется для этого контейнера прослушивателя сообщений).

Я думал, что мы можем обрабатывать одновременные сообщения одновременно.Я что-то упустил?

Ответы [ 2 ]

2 голосов
/ 04 апреля 2012

Да, документация правильная.В любой момент времени может быть только один потребитель, получающий сообщения для длительной подписки.Все долгосрочные подписки идентифицируются по уникальному идентификатору.Если один потребитель уже получает сообщения с использованием идентификатора, другая попытка создать получателя с таким же идентификатором для этой длительной подписки завершится неудачей.

1 голос
/ 26 февраля 2019

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

Виртуальная тема - это опция для ActiveMQ: идея похожа на то, что описал @brainOverflow, это сочетание темы и очередей.Производитель отправляет сообщение в тему, на которую подписаны очереди, и каждая очередь получает копию сообщения.

http://activemq.apache.org/virtual-destinations.html

...