1、获取消费者的消费信息
1、问题描述
在项目中,将消息推送到消息中间件Kafka或者从其上拉取数据时,想知道一个消费者(组)对于消息的消费情况。经常的做法是从zookeeper的节点/consumers
中获取消费者的消费信息,但是会遇到这样的一个问题:
往Kafka中推送数据,zookeeper的节点/consumers = null
,即没有消费者的消费信息,但是Kafka却可以正常消费数据,这样的过程可能经过一段时间后,zookeeper的节点/consumers
会有消费者的信息,然后通过下面的指令可以获得消费者组的一些消费情况:
bin/kafka-consumer-offset-checker.sh --zookeeper xiaolunserver:2181 --group test_consumer_group --topic test_topic
这等待的时间无法忍受,所以使用下面的方法进行获取消费者组的消费信息。
2、解决方法
1、方式1
查看所有消费者组 consumer group列表
# 保存到broker中
bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server xiaolunserver:9092 --list
# 保存到zookeeper中
bin/kafka-consumer-groups.sh --zookeeper xiaolunserver:2181 --list
获取消费者组列表后,对列表中的消费者组的情况进行查看
# 保存到broker中
bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server xiaolunserver:9092 --group test_consumer_group --describe
# 保存到zookeeper中
bin/kafka-consumer-groups.sh --zookeeper xiaolunserver:2181 --group test_consumer_group --describe
2、方式2
bin/kafka-console-consumer.sh --bootstrap-server xiaolunserver:9092 --topic first --consumer-property-group.id=group01