发布时间:2020-02-18 09:41:59编辑:admin阅读(3334)
在老版本中,使用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中,所以不能通过上述命令查看
如果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
47570
45927
36869
34434
29043
25681
24531
19686
19206
17718
5542°
6120°
5654°
5708°
6663°
5450°
5454°
5961°
5935°
7265°