HW与LEO


  • HW,High Watermark,中文高水位。

  • LEO,Latest End Offset

如下图所示,假设当前有三个broker(3个ISR):broker-0为某个主题分区的leader,生产者已经生产到了offset为5的消息,其中broker-1的副本已经同步到了offset 3,broker-2同步到了offset2。

此时,对于分区来说:

  • 每一份数据offset最大值就是LEO(latest end offset)
  • LEO中最小的那个就是HW(高水位)

此时由于3、4、5这三条数据还未完全同步给两个副本,消费者只能消费到offset为2的数据,这就是hw的作用:消费者只能消费小等于HW的数据。

为什么这么设计呢?

这是为了防止leader宕机时,数据还未同步给其他副本而导致数据丢失。

文章作者: 周君
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 周君 !
评论