Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Can';持久订阅消费者是否同时消费超过1条消息?_Spring_Jms_Spring Jms - Fatal编程技术网

Spring Can';持久订阅消费者是否同时消费超过1条消息?

Spring Can';持久订阅消费者是否同时消费超过1条消息?,spring,jms,spring-jms,Spring,Jms,Spring Jms,Spring消息侦听器容器文档说: 持久订阅名称在此客户端的内部必须是唯一的 JMS客户端id。默认值是指定消息的类名 听众。注意:只有1个并发使用者(默认为 此消息侦听器容器)允许用于每个持久 订阅 我想,我们可以同时处理并发消息。我遗漏了什么吗?是的,文档是正确的。在任何时候,对于持久订阅,只能有一个消费者接收消息。所有持久订阅都由唯一的id标识。如果一个消费者已经使用id接收消息,则为该持久订阅创建具有相同id的消费者的另一次尝试将失败。我以前遇到过此问题,我们的日志中充满了警告,抱怨客

Spring消息侦听器容器文档说:

持久订阅名称在此客户端的内部必须是唯一的 JMS客户端id。默认值是指定消息的类名 听众。注意:只有1个并发使用者(默认为 此消息侦听器容器)允许用于每个持久 订阅


我想,我们可以同时处理并发消息。我遗漏了什么吗?

是的,文档是正确的。在任何时候,对于持久订阅,只能有一个消费者接收消息。所有持久订阅都由唯一的id标识。如果一个消费者已经使用id接收消息,则为该持久订阅创建具有相同id的消费者的另一次尝试将失败。

我以前遇到过此问题,我们的日志中充满了警告,抱怨客户端id已在使用

虚拟主题是ActiveMQ的一个选项:其思想类似于@brainOverflow所描述的,它是主题和队列的组合。生产者将消息发送到队列订阅的主题,每个队列接收消息的副本


如果您希望能够为一个持久队列启动多个并发使用者,建议采用什么解决方案?合适的替代方案是什么?为每个使用者创建一个单独的连接,并设置一个唯一的客户端id。这允许您为同一主题创建并发使用者。@BennyMcBenBen:“持久队列”?我想你的意思是“持久的话题”,因为排队总是持久的。针对您的问题的一个建议是,让主题上的一个使用者拉出消息,并将它们放置在具有并发使用者的队列中。这种方式实现了订阅(主题)的持久性和并发处理。