一.问题现象:
go 客户端简单consumer 模式可以消费
go客户端consumer group模式不可消费,客户端运行到一下代码卡住
<-consumer.ready // consumer一直没有ready
fmt.Println("Sarama consumer up and running!...")
java客户端不可消费
客户端每次poll不到数据,没有日志输出
ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(1000)); //每次poll到0条数据
二.排查过程:
1.java客户端开启debug日志,查询debug日志
debug日志显示,找不到协调器(ConsumerCoordinator)
2.查询kafka服务端日志
[2020-10-21 13:01:53,464] ERROR [KafkaApi-0] Number of alive brokers '2' does not meet the required replication factor '3' for the offsets topic (configured via 'offsets.topic.replication.factor'). This error can be ignored if the cluster is starting up and not all brokers are up yet. (kafka.server.KafkaApis)
3.查询kafka的log文件夹
没有__consumer_offsets文件,说明offsets这个topic没有创建成功
三.原理:
1.consumer group的创建需要__consumer_offsets这个topic的创建,用来保存每个consumer成员提交的offsets
四.解决方案及注意:
1.offsets.topic.replication.factor默认为3.所有broker数量需要大于3
2.如果broker数量小于3,则需要设计offsets.topic.replication.factor小于等于broker数量
博客探讨了在使用Go和Java客户端时遇到的Kafka消费者组无法消费的问题。问题源于offsets topic(__consumer_offsets)未成功创建,其replication factor设置高于可用broker数量。解决方案包括调整offsets.topic.replication.factor配置,确保不超过broker数量。此外,日志显示找不到协调器,可能与集群状态有关。
3854

被折叠的 条评论
为什么被折叠?



