Я запускаю несколько экземпляров одного и того же приложения Spring Boot 2.0.4 для целей масштабирования, которые потребляют сообщения из очереди ActiveMQ, используя следующее: @JmsListener (назначение = "myQ")
Только первый потребитель получает сообщения, и если я остановлю первого потребителя, второй экземпляр начнет получать сообщения. Я хочу, чтобы каждый потребитель получал сообщение, а не одно и то же сообщение, в циклическом режиме. Но сообщения потребляет только первый потребитель.
Да, я хочу, чтобы сообщение было доставлено только одному потребителю, но я хочу, чтобы оба потребителя потребляли его из очереди.
Похоже, вам нужна тема JMS, а не очередь. Вам также следует изучить долгосрочные подписки, общие подписки и устойчивые темы, прежде чем выбирать конфигурацию, необходимую для вашей установки.
Видеть:
Модель программирования JMS API (поиск потребителей сообщений JMS)
Я хочу, чтобы каждое сообщение использовалось одним потребителем, И я хочу, чтобы из очереди потребляло более одного потребителя.
Насколько я могу судить, ActiveMQ по умолчанию использует циклический перебор очередей. Возможно, ваша настройка предварительной выборки слишком высока для количества отправляемых сообщений. В таком случае все сообщения по-прежнему обрабатываются одним потребителем, потому что первый потребитель читает все сообщения из очереди, не оставляя ни одного для следующего потребителя. См. activemq.apache.org/dispatch-policies.html
спасибо, но я добавил 5000 сообщений и вижу, что в очереди остались сообщения, поскольку один потребитель обрабатывает сообщения, в то время как второй потребитель, другой экземпляр того же потребителя, не принимает никаких сообщений.
тогда чего ты ожидал. Предположительно так себя вести. Только если у вас есть тема, сообщение будет доставлено всем потребителям