2014-09-26 59 views
0

我想要一堆幾百個客戶端應用程序在中間件的一個實例中創建和使用臨時隊列。臨時隊列的性能和侷限

爲什麼我不應該使用臨時隊列,有沒有關於性能的一些缺點?是否有限制,例如有多少溫度。隊列可以爲每個HornetQ實例創建?

回答

1

在最近的一個項目中,我們從使用臨時隊列切換到在SonicMQ上使用靜態隊列。我們通過JMS實現了同步服務調用,其中每個調用的響應將在由用戶創建的專用臨時隊列中傳遞。在壓力測試期間,我們注意到,在推動解決方案的最大吞吐量時,臨時隊列創建和分配資源的開銷開始發揮越來越大的作用。

我們更改了解決方案,以便使用consumer和provider之間的靜態隊列,並使用選擇器關聯JMSCorrelationID。這在我們的案例中導致了更好的吞吐量。如果您計劃每次(重新)創建客戶端應用程序將使用的臨時隊列,則在需要更高的吞吐率時可能會影響性能。

請注意,當隊列中的消息數量增加時,選擇器性能也可以開始播放。在我們的案例中,該解決方案旨在儘快切換消息,而不是在消費者和提供者之間扮演(存儲)緩衝區的角色。因此,隊列中的消息數量總是很低。