Spring boot 同一Springboot应用程序的多个实例,但只有一个实例使用ActiveMQ队列中的消息

Spring boot 同一Springboot应用程序的多个实例,但只有一个实例使用ActiveMQ队列中的消息,spring-boot,activemq,Spring Boot,Activemq,出于扩展目的,我正在运行同一Spring Boot 2.0.4应用程序的多个实例,这些实例使用以下方式使用ActiveMQ队列中的消息: @JmsListener(destination=“myQ”) 只有第一个使用者接收消息,如果我停止第一个使用者,第二个实例开始接收消息。我希望每个消费者以循环方式使用一条消息,而不是相同的消息。但是只有第一个消费者使用消息。听起来您想要的是JMS主题,而不是队列。在确定安装所需的配置之前,还应该研究持久订阅、共享订阅和持久主题 见: (搜索JMS消息使用者

出于扩展目的,我正在运行同一Spring Boot 2.0.4应用程序的多个实例,这些实例使用以下方式使用ActiveMQ队列中的消息: @JmsListener(destination=“myQ”)


只有第一个使用者接收消息,如果我停止第一个使用者,第二个实例开始接收消息。我希望每个消费者以循环方式使用一条消息,而不是相同的消息。但是只有第一个消费者使用消息。

听起来您想要的是JMS主题,而不是队列。在确定安装所需的配置之前,还应该研究持久订阅、共享订阅和持久主题

见:

  • (搜索JMS消息使用者)


那么你期望什么呢。应该是这样的。只有当您有一个主题时,信息才会传递给所有消费者是的,我只希望信息传递给单个消费者,但我希望两个消费者都从队列中消费。我希望每个消息由一个消费者消费,并且我希望队列中有多个消费者消费。据我所知,ActiveMQ默认为队列的循环。可能是您的预回迁设置对于正在发送的邮件数太高。在这种情况下,所有消息仍由一个使用者处理,因为第一个使用者读取队列中的所有消息,而下一个使用者则不读取任何消息。请参见“谢谢”,但我已经添加了5000条消息,并且可以看到队列中仍有消息,因为单个消费者处理这些消息,而第二个消费者(同一消费者的另一个实例)不使用任何消息。