2012-09-18 63 views
1

我們試圖在activemq中使用消息。生產者(我們沒有控制權)將不同的消息放在隊列和主題中。作爲一個消費者,我怎樣才能配置我的客戶端同時使用隊列和主題?我能想到的唯一方法是創建兩個不同的消費者,一個連接到隊列,另一個連接到主題。 這種方法是否正確,或者我能做些什麼來創建一個同時收聽兩者的消費者?ActiveMQ - 同時從隊列和主題中消費

感謝 ķ

+0

是的,這是相當多的路要走,兩個端點的聽衆。 –

回答

2

ActiveMQ的標準分發捆綁了Apache的駱駝。

鑑於您正在運行標準的ActiveMQ--您可以爲Camel添加一條小路由,爲您做到這一點。

編輯/ conf文件夾中的「camel.xml」。

添加兩條路線:

<route> 
    <from uri="activemq:topic:someTopic"/> 
    <to uri="activemq:queue:comboQueue"/> 
</route> 

<route> 
    <from uri="activemq:queue:someQueue"/> 
    <to uri="activemq:queue:comboQueue"/> 
</route> 

確保此camel.xml包含在ActiveMQ的配置,如activemq.xml中。

現在,只需從「comboQueue」消費,你可以在一個地方得到所有消息。

+0

感謝您的回覆。不幸的是,我們正在使用的activemq實例(作爲消費者)安裝在我們無法控制的機器上。我們所能控制的是代理連接URL。我們無法更改任何activemq配置。有沒有辦法解決它? –

+0

Na。那麼你做不了多少。你需要設置兩個監聽器。但是,您當然可以使用上面的Camel配置來運行本地ActiveMQ實例,以將兩個不同的目標合併到本地隊列中。只需將ActiveMQ中的Conncetion工廠配置到遠程ActiveMQ實例即可。 ' ' 這可能比僅僅放置兩個監聽器更復雜也更復雜。 –

1

您可以使用ActiveMQ的composite destination功能實現此目的,該功能允許您監聽多個目的地和不同類型的目的地。

相關問題