kafka查看消费数据

一、如何查看

在老版本中,使用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

猜你喜欢

转载自www.cnblogs.com/xiao987334176/p/10199994.html