搜索
您的当前位置:首页简记kafkagroupid相同导致的不同consumers启动后不消费和延时消费问题

简记kafkagroupid相同导致的不同consumers启动后不消费和延时消费问题

来源:智榕旅游
简记kafkagroupid相同导致的不同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消费后,发现消费正常,问题解决.

搜索资料,发现类似情况,参考

TODO:分析zookeeper数据和kakfa源码.

因篇幅问题不能全部显示,请点此查看更多更全内容

Top