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宕机时,数据还未同步给其他副本而导致数据丢失。