我正在創建一個可讓多個客戶發送消息的託管系統。我正在JMS隊列中接收消息。如何在WSO2 ESB中監聽多個隊列
現在,所有處理都以類似的方式完成,我希望我的進程輪詢所有傳入隊列中的消息並處理它們。 WSO2 ESB中有一種方法可以訂閱多個隊列嗎?
如果不可行,解決方法是爲每個隊列創建一個單獨的偵聽器進程,並將該郵件發送到中央處理隊列。但這似乎是一個不太乾淨的解決方案(我認爲它會比聽多個隊列更糟糕)。
對此的任何想法?
我正在創建一個可讓多個客戶發送消息的託管系統。我正在JMS隊列中接收消息。如何在WSO2 ESB中監聽多個隊列
現在,所有處理都以類似的方式完成,我希望我的進程輪詢所有傳入隊列中的消息並處理它們。 WSO2 ESB中有一種方法可以訂閱多個隊列嗎?
如果不可行,解決方法是爲每個隊列創建一個單獨的偵聽器進程,並將該郵件發送到中央處理隊列。但這似乎是一個不太乾淨的解決方案(我認爲它會比聽多個隊列更糟糕)。
對此的任何想法?
您可以定義一個包含所有必需邏輯的序列,然後從多個代理服務(每個都監聽特定隊列)調用它。否則,您可以嘗試類似this sample。
您的建議與我描述的解決方法相同......但我不想爲每個新客戶添加額外的服務。 –
如果對activeMQ服務器的更改是可能的,即,如果OP能夠影響到服務器的配置,像ActiveMQ轉移這樣的東西可以做到這一點。
<divert name="prices-divert">
<address>jms.queue.ABC</address>
<forwarding-address>jms.queue.theone</forwarding-address>
<exclusive>true</exclusive>
</divert>
<divert name="prices-divert">
<address>jms.queue.xyz</address>
<forwarding-address>jms.queue.theone</forwarding-address>
<exclusive>true</exclusive>
</divert>
基本上,多個轉接會聚從多個隊列中的消息到單個隊列。這種方法比讀取和寫入單個隊列具有優勢 - 正如OP所提及的那樣,並且在我看來,它可以很好地擴展,因爲它是內置功能。
有趣的想法,我會進一步調查。 –
是否可以對activemq服務器進行更改?可能是你可以在[activemq](https://activemq.apache.org/artemis/docs/1.0.0/diverts.html)中創建轉向單個隊列。 – Rohit