我有两个已配置为无状态的Mule CE实例。我有一个外部系统发布的独立Apache MQ服务器。
问题:两个Mule实例在同一队列中使用JMS入站端点部署了相同的消息流。
我的问题:是什么阻止了两个Mule实例接收/处理邮件?
答案 0 :(得分:1)
不,只有一个Mule实例会接收该消息。这就是JMS队列的用途。它们旨在一次性传递一次消息。因此,只有一个Mule节点会接收消息。
有更多高级配置,例如选择性和独占消费者,还有JMS主题,可以向多个订阅者发布消息。
答案 1 :(得分:0)
阻止其他消费者从同一队列中选择消息的一种方法是设计独占消费者。代理将选择一个MessageConsumer来获取队列的所有消息以确保排序
参考: - http://activemq.apache.org/exclusive-consumer.html
在Mule中,您可以通过以下方式设计入站JMS连接器: -
<flow name="Consumer3">
<jms:inbound-endpoint queue="yourqueue%3Fconsumer.exclusive%3Dtrue" connector-ref="Active_MQ" doc:name="JMS"/> <!-- Only this queue will receive message -->
<logger message="Consumer3 message received :- #[payload]" level="INFO" doc:name="Logger"/>
</flow>