查看kafka消息消费情况 - 陈晨辰

chen-chen-chen 2021-11-28 原文


查看kafka消息消费情况


查看主题命令

展示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

上图中有四个概念:

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

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

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

[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 16:52 
陈晨辰 
阅读(15537
评论(0
编辑 
收藏 
举报

 

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

查看kafka消息消费情况 - 陈晨辰的更多相关文章

  1. 使用Excel批量生成SQL脚本(小技巧) – 听风吹雨

    使用Excel批量生成SQL脚本(小技巧) 2010-04-15 14:18  听风吹雨  阅读(24184) […]...

  2. 台式电脑Bios界面设置U盘启动 – 快乐糖果屋

    台式电脑Bios界面设置U盘启动        ...

  3. SQL Server 2012 安装图解教程 – 钰玺

    SQL Server 2012 安装图解教程 SQL server 2012安装图解教程 SQL Server […]...

  4. 电子开发网—一个硬件很好的网站 – Hello-Walker

    电子开发网—一个硬件很好的网站 http://www.dzjs.net/html/PCBjishu […]...

  5. 比例谐振控制的一种实现(含代码) – H.D

    比例谐振控制的一种实现(含代码) 原文地址:https://donghao2nanjing.github.io […]...

  6. 谷歌18日推Chrome操作系统:中国团队参与研发 – Austin Liu\’s Fashion

    11月16日凌晨消息,据知情人士透露,谷歌按计划将于美国时间11月18日推出Chrome OS,届时这一备受关 […]...

  7. 解决win10系统以太网适配器的驱动程序可能出现问题 – sduSRZ

    解决win10系统以太网适配器的驱动程序可能出现问题 插上网线显示未连接-连接可用,连上无线显示未连接-连接不 […]...

  8. windows server 2008 R2无法共享文件夹,无法启用网络发现。 – 格里沙

    windows server 2008 R2无法共享文件夹,无法启用网络发现。 windows 系统 win […]...

随机推荐

  1. PhoneTrans for mac(数据迁移工具)

    PhoneTrans for mac一款数据迁移工具,PhoneTrans弥合了差距,使您只需单击即可轻松地以 […]...

  2. cocos creator主程入门教程(九)—— 瓦片地图

      五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑。本系列文章以TypeScript为介绍语言。   这一篇 […]...

  3. 主流开源分布式图数据库 Benchmark

    选型一款能够满足美团实际业务需求的图数据库产品,是建设图存储和图学习平台的基础。在本文中美团 NLP 团队对主 […]...

  4. 26岁的直男程序员的爱情困扰

      话说当年的愤青已经毕业三年,也到了奔三的阶段。从来没想到自己进入了催婚的阶段,感觉自己还停留在学校的单纯时 […]...

  5. Preference的 相关类 及 常用方法

          前几篇博客 介绍的参数的xml配置中所使用到的一些参数标签,其实都是一些系统中实现好的类,他们负责 […]...

  6. Kubernetes 集群升级docker版本

    Kubernetes 集群升级docker版本   原则:升级完一台正常后再接着升下一台。 Work Node […]...

  7. 鼠标滑动图片变大

    demo:http://www.html5tricks.com/css3-image-hover-effect […]...

  8. 巧妙设置Windows 2000启动项 – surfer

    巧妙设置Windows 2000启动项 在Windows 98、Windows XP中我们可以利用msconf […]...

展开目录

目录导航