副本中的LEO and HW ( Leader Replica)有什么区别?
它们会包含相同的数字吗?我可以理解HW是last committed message offset。
LEO何时更新?如何更新?
发布于 2016-08-31 19:02:22
高水位线指示完全复制的消息的偏移量,而如果存在尚未复制的新附加到前导分区的记录,则日志结束偏移量可能更大。
消费者只能消费高水位线以下的消息。
有关更多详细信息,请参阅此博客文章:http://www.confluent.io/blog/hands-free-kafka-replication-a-lesson-in-operational-simplicity/
发布于 2021-06-02 21:26:29
让我们从Google上找到最流行的水印定义开始
高水位线是成功复制到所有日志副本的最后一条消息的偏移量
我对上面的定义不太信服,在我的研究中,我发现了这张很好的图片:

那么问题出在哪里呢?图片中最右边的卡住的追随者没有记录第四条消息。也许谷歌找到的第一个定义并不完整,作者真正想做的是:“高水位线是最后一条消息的偏移量,该消息被成功复制到日志的所有同步副本中。”
在这种直觉的指导下,我找到了这个article,它提供了有关WM如何与代码一起计算的详细信息。
我发现WM的定义要精确得多:
高水位线被计算为此分区的所有ISR上的最小LEO,并且它单调增长。
这个答案与提供的代码一起证实了我的直觉。
综上所述,我认为水印的详细定义说明了LEO和WM之间的区别。最新的承诺偏移量和LEO可能与同步跟随者的高水位线一致,但对于Leader可能不是,如第一个链接图像中的示例所示。
https://stackoverflow.com/questions/39203215
复制相似问题