我們正面臨着ActiveMQ及其消費者的隨機問題。我們觀察到,即使連接到ActiveMQ隊列,很少消費者也沒有收到消息。但消費者重新啓動後,它工作正常。消費者未收到來自ActiveMQ的消息
我們有一個在側面的ActiveMQ名爲testQueue隊列。消費者試圖從這個隊列中排列消息。我們正在使用Spring的DefaultMessageListenerContainer來達到這個目的。消息正從ActiveMQ Broker傳送到消費者節點。從tcpdump也很明顯,消息正在到達消費者節點,但實際的消費者代碼無法看到消息。換句話說,消息似乎停留在ActiveMQ使用者代碼或Spring的DefaultMessageListenerContainer中。
請參閱下圖。以更清楚地解決這個問題。消息正在到達Consumer節點,但未達到「實際消費者類別」,這意味着該消息陷入AMQ消費者代碼或Spring DMLC中。
以下是ActiveMQ的管理拍攝的所有細節。
隊列名稱/待-消息計數/消費者計數/信息-入隊/消息 - 已出列 testQueue/9/1/9/0
以下是在更多的細節。
連接ID/SessionID的/選擇/排入/隊列中取出/調度/調度-隊列/預取 ID:bearsvir52-45176-1375519181268-3:5/1// 9/0/9 /二百五十○分之九
從第二張表中可以明顯看出,消息正在傳遞給消費者,但消費者沒有確認消息。因此,這些消息被卡在代理端的Dispatched-Queue中。
爲你們注意幾點:
1)沒有時間差的B/W代理節點和消費者節點。
2)觀察到消費者側tcpdump的。我們可以看到MessageDispatch(Openwire)數據包被傳輸到消費者節點,但是找不到MessageAck(Openwire)。
3)有時它是工作在一個節點上,有時它是在相同的節點上創建的問題。的這個
你能張貼在Spring配置,顯示ConectionFactory,葉準直器和監聽器類? –
我面對完全相同的問題。你有沒有得到解決方案? –
有沒有更新?我有一個類似的問題 – Nereis