当前位置:   article > 正文

Kafka坑之一:Lag与HW、LEO_kafka lag是什么

kafka lag是什么

先说结论:kafka的消息滞后(Lag)是指已消费的偏移量(ConsumerOffset)与水位线(HW)之间的消息差,并非分区(partition)中已消费的偏移量(ConsumerOffset)与当前分区的最高日志位移(LOG-END-OFFSET简称LEO)之间的差,也就是说,并不是生产者所见的offset与已消费的offset的差。

一方面,对kafka来说,HW是其备份和恢复的关键,kafka是根据HW来判断数据是否丢失和恢复数据,而HW与LEO之间的数据有可能会丢失,因此这部分未同步的数据实际上相当于是无效数据,这部分数据实际只对生产者有意义(已经产出的意义,生产者可以通过kafka ack的设置,记录产出的数据位置,以帮助恢复HW与LEO之间的数据,恢复方法也只是重新生产这部分数据,如果无法重新生产,则数据丢失)。

另一方面,leader收到消息更新自己的LEO,follower从再从leader处同步消息,这个时间差决定了leader和follower之间存在消息差,同时也决定了HW和各个partiton的LEO之间存在的消息差,消费者在消费消息时对LEO是无察觉的,HW决定了消费者能消费到的最大offset,而LEO仅由kafka管理。因此对消费者来说,LEO也是无意义的。

在kafka有查看消费组详情的命令:kafka-consumer-groups.sh --bootstrap-server ip:port --group groupid --describe,通过这个命令可以根据groupid查看LAG、CURRENT-OFFSET、LOG-END-OFFSET等信息,LAG是消息滞后量,CURRENT-OFFSET是指已消费的偏移量(ConsumerOffset),而此处LOG-END-OFFSET却不是partition最高日志位移LEO,而是水位线HW!!!LAG即是HW与已消费的偏移量(ConsumerOffset)的差!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/600753
推荐阅读
相关标签
  

闽ICP备14008679号