2014-03-25 45 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?