kafka学习总结009 --- HW和LEO

Posted sniffs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka学习总结009 --- HW和LEO相关的知识,希望对你有一定的参考价值。

本章要说的HW和LEO和ISR有关联,ISR之前总结过,这里不再说。

HW ---  High Watermark(高水位),用于标识特定的offset,消费者只能拉取到HW之前的消息

LEO --- Log End Offset,某个分区要写入下一条消息的offset

LSO --- Log Start Offset ,某个分区起始的offset

技术图片

 

 

接下来总结下ISR与HW/LEO的关系

前提:某分区有3个副本,当前状态下,HW和LEO均为2,offset为3和4的消息将要被写入分区

技术图片

 消息被写入Leader后,Follower会主动从Leader拉取消息进行消息同步;

但是不同副本拉取消息的效率不同,某一时刻,follower1拉取消息完成,但是follower2只拉取了消息3,此时follower1的HW为5,follower2的HW为4,那么该分区的HW取最小值4,

消费者只能拉取到0~3offset的消息

技术图片

 

 当follower2同步Leader完成后,follower2的HW为5,整个分区的HW为5

通过该方式,kafka集群很大程度上保证了Leader宕机后,数据的丢失

技术图片

 

以上是关于kafka学习总结009 --- HW和LEO的主要内容,如果未能解决你的问题,请参考以下文章

Kafka-LEO和HW概念及更新流程

Kafka - 日志结束偏移量(LEO)与高水位线(HW)之间的区别

Kafka深入原理(3)-LEO、HW原理

Kafka ISR and AR HW LEO

kafka入门之broker-水印和leader epoch

kafka数据一致性(HW只能保证副本之间的数据一致性,并不能保证数据不丢失ack或者不重复。)