今天突然收到RocketMQ預警信息以下:tomcat
提醒有部分數據沒有消費,產生堆積狀況。負載均衡
打開RocketMq-Console-Ng查看以下圖形式:命令行
備註:第一反應是Consumer Group內訂閱了多個topic?(爲何這麼懷疑,下次分析)。3d
經過命令statsAll 做用是查詢Topic and Consumer tps stats:調試
sh mqadmin statsAll -n namesrvorm
發現沒有問題,很奇怪?還好以前源碼看過,只能調試源碼了。cdn
本篇不重點講解源碼過程,後續有空再慢慢分析源碼部分,消費端爲了實現負載均衡器,每次當有結點添加或者減小都會從新doRebalance,默認選擇的就是獲取全部隊列以及獲得對應group下面全部的cidAll(全部的消費端),以後相似於分頁操做差很少……blog
進行斷點到該位置發現奇怪現象:隊列
源碼部分:ci
備註: 現象是什麼大概清楚了,下面的重點是爲何會出現這樣的狀況呢?
經過RocketMQ命令查詢結果仍是同樣:
回頭看看爲何會這樣,RocketMQ不少流程有點忘記了,抽空再過一遍,把這個問題梳理下。
天僅僅只是開始,期待你的持續關注,讓咱們一塊兒走進rocketmq的世界!!!
若是讀完以爲有收穫的話,歡迎點贊、關注、加公衆號【匠心零度】,查閱更多精彩歷史!!!
加入知識星球,一塊兒探討!