簡記kafka group id相同導致的不同consumers啟動后不消費和延時消費問題


場景: 在一個線程內,使用相同的brokers和group id等配置,根據傳入的topic數量N,分別定義N個consumer,按定義順序先后調用consumers消費

現象: 程序啟動后,kafka消費線程正常初始化,調用poll嘗試消費,一直沒有返回消息. 程序啟動10分鍾左右后,開始正常消費.

 

分析定位:

程序啟動后,發現不消費

1>查看kafka debug日志

Sending Heartbeat request to coordinator 192.168.44.88:9191 (id: 2147483647 rack: null)

Attempt to heartbeat failed since group is rebalancing

 

2>使用kafka自帶腳本查看消費組的情況

bin/kafka-consumer-groups.sh --bootstrap-server 192.168.44.88:9191 --describe --group sample-consumer-group

發現Warning: Consumer group 'sample-consumer-group' is rebalancing. 

topic的LAG不為0,即有消息積壓.

 

3>嘗試更新kafka集群后和增加topic partitions后測試,發現問題依然存在,確認是程序問題.

4>嘗試減少consumer和topic數量,只傳入一個topic,消費正常. 

 

傳入3個topic和傳入1個topic時,對於每個topic而言,都只有一個consumer消費一個topic,為什么前者不正常二后者正常? 為什么前者會導致 kafka group rebalancing? 

比較測試條件差異,初步猜想是使用相同的group id 導致.

傳入3個topic並分別讓3個消費者使用不同的groupid消費后,發現消費正常,問題解決.

 

搜索資料,發現類似情況,參考

https://www.gonever.com/post/108

 

TODO:分析zookeeper數據和kakfa源碼. 


免責聲明!

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



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