2014-03-25 54 views
0

我有两个Mule CE实例已被配置为无状态。我有一个外部系统发布到的独立Apache MQ服务器。Mule HA节点 - JMS端点

问题:两个Mule实例具有与同一队列上的JMS入站端点一起部署的相同消息流。

我的问题:是什么阻止两个Mule实例接收/处理消息?

+0

这方面的问题,你所面临的当前?或在景观设置之前的问题 –

回答

1

不,只有一个Mule实例会接收到消息。这就是JMS队列的作用。它们旨在传递信息一次且仅一次。所以只有一个Mule节点会接收到这个消息。

还有更高级的配置,例如选择性和排他性使用者以及将消息发布到多个订阅者的JMS主题。

+0

http://activemq.apache.org/how-does-a-queue-compare-to-a-topic.html – eebbesen

0

阻止其他消费者从同一队列中选择消息的一种方法是设计专属消费者。代理将选择一个MessageConsumer来获取队列的所有消息,以确保排序。
REF: - http://activemq.apache.org/exclusive-consumer.html
在骡,你可以设计以下方式入站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> 

参考: - How to create exclusive queue consumer in Mule?