一、如何查看
在老版本中,使用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 PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID xx-pending-business-c0a9dc75 0 - 0 - consumer-1-20b51e57-70de-417b-ba4a-4e7ffbb6df7a /192.169.220.117 consumer-1 xx-pending-business-c0a9dc71 0 1082 1082 0 - - -
指定自己的分组 自己消费的topic会显示kafka总共有多少数据,以及已经被消费了多少条
标记解释:
GROUP | TOPIC | PID | OFFSET | LOGSIZE | LAG |
消费者组 | 主题id | 分区id | 当前已消费的条数 | 总条数 | 未消费的条数 |
从上面的信息可以看出,topic为xx-pending-business-c0a9dc71 总共消费了1082条信息, 未消费的条数为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
原文地址:https://www.cnblogs.com/xiao987334176/p/10199994.html