前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >查看kafka消息消费情况

查看kafka消息消费情况

作者头像
chenchenchen
发布2022-05-07 14:53:42
2.1K0
发布2022-05-07 14:53:42
举报
文章被收录于专栏:chenchenchenchenchenchen

查看主题命令

代码语言:javascript
复制
#展示topic列表
 ./kafka-topics.sh --list --zookeeper 172.18.153.12:2188
#描述topic
 ./kafka-topics.sh --describe --zookeeper 172.18.153.12:2188 --topic test
#查看topic某分区偏移量最大(小)值
 ./kafka-run-class.sh kafka.tools.GetOffsetShell --topic test --time -1 --broker-list 10.1.3.84:9098 --partitions 0
#增加topic分区数
 ./kafka-topics.sh --zookeeper 172.18.153.12:2188 --alter --topic test --partitions 10
#删除topic:慎用,只会删除zookeeper中的元数据,消息文件须手动删除
 方法一:
 ./kafka-topics.sh --delete --zookeeper 172.18.153.12:2188 --topic test
 方法二:待验证
 ./kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper 172.18.153.12:2188 --topic test
#查看topic消费进度,必须参数为–group, 不指定–topic,默认为所有topic,
 ./kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --group group1
#列出所有主题中的所有用户组:
 ./kafka-consumer-groups.sh --bootstrap-server 10.1.3.84:9098 --list
#要使用ConsumerOffsetChecker查看上一个示例中消费者组的偏移量,我们按如下所示“describe”消费者组:
 ./kafka-consumer-groups.sh --bootstrap-server 10.1.3.84:9098 --describe --group group1
#-members: 此选项提供使用者组中所有活动成员的列表。
 ./kafka-consumer-groups.sh --bootstrap-server 10.1.3.84:9098 --describe --group group1 --members

查看kafka消息消费情况

消息堆积是消费滞后(Lag)的一种表现形式,消息中间件服务端中所留存的消息与消费掉的消息之间的差值即为消息堆积量,也称之为消费滞后(Lag)量。 对于Kafka而言,消息被发送至Topic中,而Topic又分成了多个分区(Partition),每一个Partition都有一个预写式的日志文件,虽然Partition可以继续细分为若干个段文件(Segment),但是对于上层应用来说可以将Partition看成最小的存储单元(一个由多个Segment文件拼接的“巨型文件”)。 每个Partition都由一系列有序的、不可变的消息组成,这些消息被连续的追加到Partition中。我们来看下图,其就是Partition的一个真实写照:

file
file

上图中有四个概念:

LogStartOffset:表示一个Partition的起始位移,初始为0,虽然消息的增加以及日志清除策略的影响,这个值会阶段性的增大。 ConsumerOffset:消费位移,表示Partition的某个消费者消费到的位移位置。 HighWatermark:简称HW,代表消费端所能“观察”到的Partition的最高日志位移,HW大于等于ConsumerOffset的值。 LogEndOffset:简称LEO, 代表Partition的最高日志位移,其值对消费者不可见。

比如在ISR(In-Sync-Replicas)副本数等于3的情况下(如下图所示),消息发送到Leader A之后会更新LEO的值,Follower B和Follower C也会实时拉取Leader A中的消息来更新自己,HW就表示A、B、C三者同时达到的日志位移,也就是A、B、C三者中LEO最小的那个值。由于B、C拉取A消息之间延时问题,所以HW必然不会一直与Leader的LEO相等,即LEO>=HW。

file
file

要计算Kafka中某个消费者的滞后量很简单,首先看看其消费了几个Topic,然后针对每个Topic来计算其中每个Partition的Lag,每个Partition的Lag计算就显得非常的简单了,参考下图:

file
file

由图可知消费Lag=HW - ConsumerOffset。Kafka中自带的kafka-consumer_groups.sh脚本中就有Lag的信息,示例如下:

代码语言:javascript
复制
[root@node2 kafka_2.12-1.0.0]# bin/kafka-consumer-groups.sh --describe --bootstrap-server localhost:9092 --group CONSUMER_GROUP_ID
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
 topic-test1 0 1648 1648 0 CLIENT_ID-e2d41f8d-dbd2-4f0e-9239-efacb55c6261 /192.168.92.1 CLIENT_ID
 topic-test1 1 1648 1648 0 CLIENT_ID-e2d41f8d-dbd2-4f0e-9239-efacb55c6261 /192.168.92.1 CLIENT_ID
 topic-test1 2 1648 1648 0 CLIENT_ID-e2d41f8d-dbd2-4f0e-9239-efacb55c6261 /192.168.92.1 CLIENT_ID
 topic-test1 3 1648 1648 0 CLIENT_ID-e2d41f8d-dbd2-4f0e-9239-efacb55c6261 /192.168.92.1 CLIENT_ID

参考: Kafka的Lag计算误区及正确实现:https://blog.csdn.net/u013256816/article/details/79955578 如何使用JMX监控Kafka:https://blog.csdn.net/u013256816/article/details/53524884

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 查看主题命令
  • 查看kafka消息消费情况
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档