[英]Large delays in message consumption of messages in ActiveMQ
我們有一個經紀人網絡,由不同服務器上的三個經紀人組成。 網絡連接器配置如下:
<networkConnectors>
<networkConnector uri="static:(ssl://broker2:61616,ssl://broker3:61616)" networkTTL="5"/>
</networkConnectors>
整體設置如下圖所示。
在實踐中,我們有時會看到特定客戶端的消息消耗有很大的延遲。 在這種情況下,消息在最終被消費之前會被多次轉發到其他代理。 到目前為止,我們一直無法找出可能是什么原因。
消費者不是很忙。 它們是使用 Spring JMS 庫實現的。 每個代理的最小消費者數量是 3 個,但這可以根據需要自動擴展。
我們懷疑只有特定客戶端受到影響的原因可能與我們使用 JMSGroupId 對消息處理方式進行排序有關。 但是,我們沒有確切的證據證明這一點。 它仍然沒有解釋它為什么會發生。
我們還考慮向網絡連接器添加以下參數,因為我們認為這可能會改善行為:
dynamicOnly="true"
decreaseNetworkConsumerPriority="true"
suppressDuplicateQueueSubscriptions="true"
然而,這樣做也很可怕,因為我們覺得我們並不完全了解現在正在發生的事情,因此無法真正確定這些設置對行為的影響。
我們懷疑只有特定客戶端受到影響的原因可能與我們使用 JMSGroupId 對消息處理方式進行排序有關。
答對了。
如果您確保串行消息處理,擴展消費者是無用的。 擺脫這種行為的最好方法是設置一個專用的 JMS 隊列,每個組只有一個消費者,否則當隊列中的多個后續消息屬於同一組時,您將嘗試消費者爭用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.