一、如何查看

在老版本中,使用kafka-run-class.sh 脚本进行查看。但是对于最新版本,kafka-run-class.sh 已经不能使用,必须使用另外一个脚本才行,它就是kafka-consumer-groups.sh

普通版

查看所有组

要想查询消费数据,必须要指定组。那么线上运行的kafka有哪些组呢?使用以下命令:

bin/kafka-consumer-groups.sh --bootstrap-server kafka-1.default.svc.cluster.local:9092 --list

注意:根据实际情况修改kafka的连接地址

 

执行输出:

...
usercenter
...

 

这些组在是程序代码里面定义的,比如usercenter就是一个业务模块。

 

查看消费情况

bin/kafka-consumer-groups.sh --describe --bootstrap-server kafka-1.default.svc.cluster.local:9092 --group usercenter

参数解释:

–describe  显示详细信息

–bootstrap-server 指定kafka连接地址

–group 指定组。

 

注意:–group指定的组必须存在才行!可以用上面的–list命令来查看

 

执行输出:

 

指定自己的分组 自己消费的topic会显示kafka总共有多少数据,以及已经被消费了多少条

标记解释:

TOPIC
PARTITION
CURRENT-OFFSET
LOG-END-OFFSET
LAG
CONSUMER-ID
HOST
CLIENT-ID
topic名字 分区id 当前已消费的条数 总条数 未消费的条数 消费id 主机ip 客户端id

 

 

 

 

从上面的信息可以看出,topic为xx-pending-business-c0a9dc71 总共消费了4条信息, 未消费的条数为0。也就是说,消费数据没有积压的情况!

 

注意:以kafkaspout类作为消费者去读kafka数据,相当于直接从kafka server上取文件,没有消费者组的概念

每次读的数据存在自己zk的offet中,所以不能通过上述命令查看

 

ACL版查看

如果kafka启用了acl权限验证,则不能直接使用上面的命令查看,需要增加参数–command-config参数才行

此参数必须要指定一个配置文件才行

修改默认的配置文件

cd /kafka_2.12-2.1.0/
vim config/config/consumer.properties

 

最后一行增加2行,表示指定SASL协议连接

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

 

查看所有组

bin/kafka-consumer-groups.sh --command-config config/consumer.properties  --bootstrap-server kafka-1.default.svc.cluster.local:9092 --list

 

注意:–command-config 后面的配置文件,我用的是相对路径。请以实际情况为准!

 

查看消费情况

bin/kafka-consumer-groups.sh --command-config config/consumer.properties  --describe --bootstrap-server kafka-1.default.svc.cluster.local:9092 --group usercenter

 

如果需要使用shell脚本,来检测kafka的消费数据,有没有积压。

可以先使用–list命令,然后对结果使用for循环遍历,将组名赋予到–group参数上即可!

 

 

本文参考链接:

https://blog.csdn.net/sweetgirl520/article/details/80323584

版权声明:本文为xiao987334176原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xiao987334176/p/10199994.html