1. 程式人生 > 其它 >淺談如何解決RocketMQ訊息堆積的問題

淺談如何解決RocketMQ訊息堆積的問題

MQ訊息堆積是指生產者傳送的訊息短時間內在Broker端大量堆積,無法被消費者及時消費,從而導致業務功能無法正常使用。

訊息堆積常見於以下幾種情況:

(1)新上線的消費者功能有BUG,訊息無法被消費。

(2)消費者例項宕機或因網路問題暫時無法同Broker建立連線。

(3)生產者短時間內推送大量訊息至Broker,消費者消費能力不足。

(4)生產者未感知Broker消費堆積持續向Broker推送訊息。

解決上述問題就要做到:

(1)解決問題一,要做好 灰度釋出。每次新功能上線前,選取一定比例的消費例項做灰度,若出現問題,及時回滾;若消費者消費正常,平穩執行一段時間後,再升級其它例項。如果需要按規則選出一部分賬號做灰度,則需要做好訊息過濾,讓正常消費例項排除灰度訊息,讓灰度消費例項過濾出灰度訊息。

(2)解決問題二,要做到 多活。極端情況下,當一個IDC內消費例項全部宕機時,需要做到讓其他IDC內的消費例項正常消費訊息。同時,若一個IDC內Broker全部宕機,需要支援生產者將訊息傳送至其它IDC的Broker。

(3)解決問題三,要 增強消費能力。增強消費能力,主要是增加消費者執行緒數或增加消費者例項個數。增加消費者執行緒數要注意消費者及其下游服務的消費能力,上線前就要將執行緒池引數調至最優狀態。增加消費者例項個數,要注意Queue數量,消費例項的數量要與Queue數量相同,如果消費例項數量超過Queue數量,多出的消費例項分不到Queue,只增加消費例項是沒用的,如果消費例項數量比Queue數量少,每個消費例項承載的流量是不同的。

(4)解決問題四,要做到 熔斷與隔離。當一個Broker的隊列出現訊息積壓時,要對其熔斷,將其隔離,將新訊息傳送至其它佇列,過一定的時間,再解除其隔離。

 

轉載:https://blog.csdn.net/weixin_43506048/article/details/121051405

    開源專案:https://github.com/webankfintech/DeFiBus

 

 

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back     此頁面的語言為中文(簡體)   翻譯為        
  • 中文(簡體)
  • 中文(繁體)
  • 丹麥語
  • 烏克蘭語
  • 烏爾都語
  • 亞美尼亞語
  • 俄語
  • 保加利亞語
  • 克羅埃西亞語
  • 冰島語
  • 加泰羅尼亞語
  • 匈牙利語
  • 卡納達語
  • 印地語
  • 印尼語
  • 古吉拉特語
  • 哈薩克語
  • 土耳其語
  • 威爾士語
  • 孟加拉語
  • 尼泊爾語
  • 布林語(南非荷蘭語)
  • 希伯來語
  • 希臘語
  • 庫爾德語
  • 德語
  • 義大利語
  • 拉脫維亞語
  • 挪威語
  • 捷克語
  • 斯洛伐克語
  • 斯洛維尼亞語
  • 旁遮普語
  • 日語
  • 普什圖語
  • 毛利語
  • 法語
  • 波蘭語
  • 波斯語
  • 泰盧固語
  • 泰米爾語
  • 泰語
  • 海地克里奧爾語
  • 愛沙尼亞語
  • 瑞典語
  • 立陶宛語
  • 緬甸語
  • 羅馬尼亞語
  • 寮國語
  • 芬蘭語
  • 英語
  • 荷蘭語
  • 薩摩亞語
  • 葡萄牙語
  • 西班牙語
  • 越南語
  • 亞塞拜然語
  • 阿姆哈拉語
  • 阿爾巴尼亞語
  • 阿拉伯語
  • 韓語
  • 馬爾加什語
  • 馬拉地語
  • 馬拉雅拉姆語
  • 馬來語
  • 馬耳他語
  • 高棉語