【RocketMQ】消息積壓判斷及解決

一. 定位問題

1. Console入口

主題-->Topic-->Consumer管理-->訂閱組

在這裏插入圖片描述

2. 延遲數量(Delay)

消息積壓數量,即當前Topic還剩下多少消息未處理,該值越大,表示積壓的消息越多

3. 最後消費時間(LastConsumeTime)

當前Topic消息最後被消費的時間,該值表示消費端有多長時間未拉取消息進行消費

二. 分析問題

1. 查看rocketmq_client.log日誌

grep "do flow control" rocketmq_client.log

如果出現 so do flow control 這樣的日誌,說明觸發了消費限流,原因是:消費端積壓了消息,即消費端無法消費已拉取的消息,消費端在沒有將消息處理完成前,不會再向服務端拉取消息,並打印日誌。

2. 消費端業務邏輯

1. 執行了長耗時的邏輯,導致消息處理很慢
2. 第三方接口調用很慢或超時

三. 解決問題

1. 消費端解決

1. 增加消費端的消費線程數或增加消費者數量,提升消費能力
2. 優化代碼邏輯,降低執行時間
3. 調用第三方接口時,設置較短的超時時間,避免長時間等待,快速返回錯誤信息並告警

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章