我們試圖在activemq中使用消息。生產者(我們沒有控制權)將不同的消息放在隊列和主題中。作爲一個消費者,我怎樣才能配置我的客戶端同時使用隊列和主題?我能想到的唯一方法是創建兩個不同的消費者,一個連接到隊列,另一個連接到主題。 這種方法是否正確,或者我能做些什麼來創建一個同時收聽兩者的消費者?ActiveMQ - 同時從隊列和主題中消費
感謝 ķ
我們試圖在activemq中使用消息。生產者(我們沒有控制權)將不同的消息放在隊列和主題中。作爲一個消費者,我怎樣才能配置我的客戶端同時使用隊列和主題?我能想到的唯一方法是創建兩個不同的消費者,一個連接到隊列,另一個連接到主題。 這種方法是否正確,或者我能做些什麼來創建一個同時收聽兩者的消費者?ActiveMQ - 同時從隊列和主題中消費
感謝 ķ
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」消費,你可以在一個地方得到所有消息。
感謝您的回覆。不幸的是,我們正在使用的activemq實例(作爲消費者)安裝在我們無法控制的機器上。我們所能控制的是代理連接URL。我們無法更改任何activemq配置。有沒有辦法解決它? –
Na。那麼你做不了多少。你需要設置兩個監聽器。但是,您當然可以使用上面的Camel配置來運行本地ActiveMQ實例,以將兩個不同的目標合併到本地隊列中。只需將ActiveMQ中的Conncetion工廠配置到遠程ActiveMQ實例即可。 '
您可以使用ActiveMQ的composite destination功能實現此目的,該功能允許您監聽多個目的地和不同類型的目的地。
是的,這是相當多的路要走,兩個端點的聽衆。 –