Spring Can';持久订阅消费者是否同时消费超过1条消息?
Spring消息侦听器容器文档说: 持久订阅名称在此客户端的内部必须是唯一的 JMS客户端id。默认值是指定消息的类名 听众。注意:只有1个并发使用者(默认为 此消息侦听器容器)允许用于每个持久 订阅Spring Can';持久订阅消费者是否同时消费超过1条消息?,spring,jms,spring-jms,Spring,Jms,Spring Jms,Spring消息侦听器容器文档说: 持久订阅名称在此客户端的内部必须是唯一的 JMS客户端id。默认值是指定消息的类名 听众。注意:只有1个并发使用者(默认为 此消息侦听器容器)允许用于每个持久 订阅 我想,我们可以同时处理并发消息。我遗漏了什么吗?是的,文档是正确的。在任何时候,对于持久订阅,只能有一个消费者接收消息。所有持久订阅都由唯一的id标识。如果一个消费者已经使用id接收消息,则为该持久订阅创建具有相同id的消费者的另一次尝试将失败。我以前遇到过此问题,我们的日志中充满了警告,抱怨客
我想,我们可以同时处理并发消息。我遗漏了什么吗?是的,文档是正确的。在任何时候,对于持久订阅,只能有一个消费者接收消息。所有持久订阅都由唯一的id标识。如果一个消费者已经使用id接收消息,则为该持久订阅创建具有相同id的消费者的另一次尝试将失败。我以前遇到过此问题,我们的日志中充满了警告,抱怨客户端id已在使用 虚拟主题是ActiveMQ的一个选项:其思想类似于@brainOverflow所描述的,它是主题和队列的组合。生产者将消息发送到队列订阅的主题,每个队列接收消息的副本
如果您希望能够为一个持久队列启动多个并发使用者,建议采用什么解决方案?合适的替代方案是什么?为每个使用者创建一个单独的连接,并设置一个唯一的客户端id。这允许您为同一主题创建并发使用者。@BennyMcBenBen:“持久队列”?我想你的意思是“持久的话题”,因为排队总是持久的。针对您的问题的一个建议是,让主题上的一个使用者拉出消息,并将它们放置在具有并发使用者的队列中。这种方式实现了订阅(主题)的持久性和并发处理。