RocketMQ部分數據消費不了問題排查

問題現象

今天突然收到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

進行斷點到該位置發現奇怪現象:隊列

看到這裏就明白了爲何 RocketMq-Console-Ng查看下面不少是空白的沒有消費端了,因爲cidAll的0、二、3同樣一共有16個隊列,cidAll顯示4個 那麼每一個客戶端應該是分配4個的,可是因爲0、二、3都同樣 就分配一次的。

源碼部分:ci

備註: 現象是什麼大概清楚了,下面的重點是爲何會出現這樣的狀況呢?

問題排查

經過RocketMQ命令查詢結果仍是同樣:

看到這裏讓我不由懷疑是否消費實例啓動屢次,查看代碼依然沒有,實在沒辦法偶然查看了下tomcat的配置,驚喜的發現:
與該使用方交流發現是的確是沒有重啓部署了,重啓問題解決。

待解決

回頭看看爲何會這樣,RocketMQ不少流程有點忘記了,抽空再過一遍,把這個問題梳理下。

天僅僅只是開始,期待你的持續關注,讓咱們一塊兒走進rocketmq的世界!!!

往期rocketmq系列文章


若是讀完以爲有收穫的話,歡迎點贊、關注、加公衆號【匠心零度】,查閱更多精彩歷史!!!

加入知識星球,一塊兒探討!

相關文章
相關標籤/搜索