持久订阅消费者不能同时消费超过1条消息吗?

问题描述 投票:2回答:2

Spring Message Listener Container doc说:

http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/jms/listener/AbstractMessageListenerContainer.html#setDurableSubscriptionName%28java.lang.String%29

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

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

spring jms spring-jms
2个回答
2
投票

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


1
投票

我之前遇到过这个问题,我们的日志充满警告,抱怨客户端ID已经在使用中。

Virtual Topic是ActiveMQ的一个选项:这个想法类似于@brainOverflow所描述的,它是主题和队列的组合。生产者将消息发送到由队列订阅的主题,并且每个队列接收消息的副本。

http://activemq.apache.org/virtual-destinations.html

© www.soinside.com 2019 - 2024. All rights reserved.