一. 定位問題
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. 調用第三方接口時,設置較短的超時時間,避免長時間等待,快速返回錯誤信息並告警