簡體   English   中英

ActiveMQ 消息消費延遲大

[英]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 隊列,每個組只有一個消費者,否則當隊列中的多個后續消息屬於同一組時,您將嘗試消費者爭用。

請參閱JMS 拓撲(具有多個消費者的隊列)和消息組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM