kafka 升级2.5.0版本失败,回滚到1.1.0版本后,无法查询某个消费者组的信息

Crazy 。 发表于: 2020-05-11   最后更新时间: 2020-05-11 10:17:25   2,084 游览

基于docker部署的kafka(2.11-1.1.0)zookeeper(3.4.13)未部署集群,broker.id为-1。
1、在终端使用查询消费组信息命令如下:

bash-4.4# kafka-consumer-groups.sh --bootstrap-server :9092 --describe --group runtime_log
Note: This will not show information about old Zookeeper-based consumers.

结果:没有展示消费组(runtime_log)的详细信息,其他的消费组正常,新建一个消费组也正常。

2、执行查询消费者状态命令如下:

bash-4.4# kafka-consumer-groups.sh --bootstrap-server :9092 --describe --group runtime_log --state
Note: This will not show information about old Zookeeper-based consumers.

COORDINATOR (ID)          ASSIGNMENT-STRATEGY       STATE                #MEMBERS
47.97.***.***:9092 (1001) range                     Stable               1

结果:状态为(Stable)意味着可以消费?但实际未发生消费行为。

3、执行查询消费组成员命令如下:

bash-4.4# kafka-consumer-groups.sh --bootstrap-server :9092 --describe --group runtime_log --members
Note: This will not show information about old Zookeeper-based consumers.

CONSUMER-ID                                                                                   HOST            CLIENT-ID                                                #PARTITIONS
lps@thinkhome-lps-2.0.12 (github.com/segmentio/kafka-go)-c6001c90-c015-431d-93c2-18da5e1cf7fe /47.97.***.***  lps@thinkhome-lps-2.0.12 (github.com/segmentio/kafka-go) 1

结果:提示有消费者成员,但实际测试未消费数据

请问下有没有人出现过类似现象,之前升级过kafka(2.5.0)版本,但是未升级成功,所以又使用原来的容器,其他主题的消费者测试正常,唯独这一个消费者不正常。

谢谢!

发表于 2020-05-11

未找到具体原因,暂时使用新的消费组替代

你的老版本消费者组信息是在存储在zk里,还是在kafka topic里?
新版的都在kafka topic里了,老版的在zk里,我想可能是这个差异导致的。

Crazy 。 -> 半兽人 4年前

[2020-05-11 12:30:00,868] ERROR [KafkaApi-1001] Number of alive brokers '0' does not meet the required replication factor '1' 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)

大佬,请问下这个咋回事呢

半兽人 -> Crazy 。 4年前

你的 server.properties 应该是1(或根据你的broker数量决定的,默认是3,如果你只有1个broker,那就是1):

offsets.topic.replication.factor=1

新版中,Kafka不再在Zookeeper中为消费者保存topic offset了,而是在名称为__consumer_offsets的“内部topic”中保存。

应该,你这个错误应该是旧的offset在zk中,升级后在内部topic中找不到,所以是0。

Crazy 。 -> 半兽人 4年前

ok,谢谢大佬,主要问题还是kafka没有正确在zookeeper中注册导致broker为0的。已经解决了。

这里记录一下踩过的坑,在k8s中部署有状态kafka和zookeeper单机版或集群,要注意DNS(例如kafka-0.kafka-svc.default.svc.cluster.local:9092,docker镜像:wurstmeister/kafka:2.12-2.5.0,环境变量:KAFKA_ADVERTISED_HOST_NAME=kafka-0.kafka-svc.default.svc.cluster.local)以及集群发现机制,有状态kafka应用每次重启都会成为新的Leader注册到zk,这样会导致zk的kafka数量和实际启动的数量不一致,解决方案就是每次都删除-启动kafka,而不是直接重启kafka。
最后,升级到2.5.0真不容易,懂的东西还是太少。

你的答案

查看kafka相关的其他问题或提一个您自己的问题