Spring Message Listener Container doc说:
持久订阅名称在此客户端中必须是唯一的 JMS客户端ID。默认值是指定消息的类名 监听器。注意:只有1个并发使用者(默认值为 每个持久性允许此消息侦听器容器) 订阅。
我想,我们可以同时处理并发消息。我错过了什么吗?
答案 0 :(得分:1)
是的,文档是正确的。在任何时候,只有一个消费者接收持久订阅的消息。所有持久订阅都由唯一ID标识。如果一个消费者已经使用id接收消息,则另一次尝试创建具有该持久预订的相同id的消费者将失败。
答案 1 :(得分:1)
我以前遇到过此问题,我们的日志中充满了警告,抱怨客户端ID已在使用中。
虚拟主题是ActiveMQ的一个选项:这个想法类似于@brainOverflow描述的,它是主题和队列的组合。生产者将消息发送到由队列订阅的主题,每个队列接收消息的副本。