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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM