2014-10-03 18 views
1

我正在管理隊列大小不斷增加的ActiveMQ代理。我被告知這個問題可能與經紀人而不是消費者(其中7人)有關。不同消費者的ActiveMQ重複會話ID

大多數隊列顯示重複,一式三份等,不同消費者(每個單獨的服務器)的SessionId列條目。

我以爲每個消費者都會有自己的線程(每個隊列?),而且這種狀態似乎是錯誤的 - 因此我懷疑這導致緩慢的隊列處理。

有人可以在「瀏覽活動用戶」頁面上了解消費者和SessionId之間的關係嗎?

謝謝!

回答

1

對於每個消費者(併發或其他)線程,您將看到「瀏覽活動用戶」頁面中列出的會話ID。你所看到的是正確的。

性能問題可能來自許多方面,但我非常懷疑這是由於消費者的數量所致。隊列備份(在任何提供商上)最常見的原因是性能不佳,消費者無法跟上消息的產生。爲什麼它表現不佳可以從網絡到執行任何應用程序需要處理消息和提交(如果使用事務或其他非自動確認模式)所需的時間。

看看你的調度隊列欄。如果在消費者中使用默認值,則每個消費者最多可以有1000條待處理消息。如果您看到出列計數緩慢增加,則刷新時通常表示消費者遲遲不承認。

+0

「看看你的調度隊列中......如果你看到出隊計數緩慢增加」你是指這裏的同一列,還是分別是「調度隊列」和「出隊隊列」? – 2014-10-03 18:53:33

+0

我的原始問題重新:SessionId是關於它的正常幾個不同的消費者在該列中具有完全相同的值。你的回答沒有明確提到...... – 2014-10-03 18:56:41

+0

是的,sessionid可以是相同的。會話ID與該特定會話相關。如果您正在共享會話(即併發使用者,並且在某些情況下使用事務),您將看到會話ID不同。分派隊列表示分配給給定用戶的消息數量。出隊代表客戶端實際消耗和查詢的消息數量。因此,如果您在調度隊列中看到消息,但出列計數沒有增加或緩慢增加,通常可以將其與消費者性能問題聯繫起來。 – 2014-10-04 02:23:45