Несколько экземпляров одного и того же приложения springboot, но только 1 экземпляр потребляет сообщения из очереди activemq

Я запускаю несколько экземпляров одного и того же приложения Spring Boot 2.0.4 для целей масштабирования, которые потребляют сообщения из очереди ActiveMQ, используя следующее: @JmsListener (назначение = "myQ")

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

тогда чего ты ожидал. Предположительно так себя вести. Только если у вас есть тема, сообщение будет доставлено всем потребителям

pvpkiran 10.08.2018 16:41

Да, я хочу, чтобы сообщение было доставлено только одному потребителю, но я хочу, чтобы оба потребителя потребляли его из очереди.

D R 10.08.2018 20:12
1
2
563
1

Ответы 1

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

Видеть:

Я хочу, чтобы каждое сообщение использовалось одним потребителем, И я хочу, чтобы из очереди потребляло более одного потребителя.

D R 10.08.2018 20:13

Насколько я могу судить, ActiveMQ по умолчанию использует циклический перебор очередей. Возможно, ваша настройка предварительной выборки слишком высока для количества отправляемых сообщений. В таком случае все сообщения по-прежнему обрабатываются одним потребителем, потому что первый потребитель читает все сообщения из очереди, не оставляя ни одного для следующего потребителя. См. activemq.apache.org/dispatch-policies.html

David Wolff 13.08.2018 23:10

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

D R 20.08.2018 10:26

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