我有一个配置为弹簧消息侦听器
<bean id="processListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="concurrentConsumers" value="1"/>
<property name="clientId" value="process-execute"/>
<property name="connectionFactory" ref="topicConnectionFactory"/>
<property name="destination" ref="processExecuteQueue"/>
<property name="messageListener" ref="processExecuteListener"/>
</bean>
这是在具有 2 个节点的集群上运行的。我看到它为每个节点创建了 1 个消费者,而不是每个集群创建了 1 个消费者。它们都配置了上述 xml,因此它们具有相同的 clientId。然而,当 2 个通知发布到队列时,两个侦听器都在运行,每个侦听器都收到一个通知,并且都并行执行。这是一个问题,因为通知需要按顺序处理。
我似乎不知道如何使它每个集群而不是每个节点只有一个消息侦听器。