articleList

22-Kafka的HighWatermark的作用你知道多少

2025/03/13 posted in  Kafka
Tags: 

  • 背景 broker故障后

    • ACK保障了【生产者】的投递可靠性
    • partition的多副本保障了【消息存储】的可靠性
    • hw的作用是啥?
    • 备注:重复消费问题需要消费者自己处理
  • HW作用:保证消费数据的一致性和副本数据的一致性

假设没有HW,消费者消费leader到15,下面消费者应该消费16。
此时leader挂掉,选下面某个follower为leader,此时消费者找新leader消费数据,发现新Leader没有16数据,报错。
HW(High Watermark)是所有副本中最小的LEO。
  • Follower故障

    • Follower发生故障后会被临时踢出ISR(动态变化),待该follower恢复后,follower会读取本地的磁盘记录的上次的HW,并将该log文件高于HW的部分截取掉,从HW开始向leader进行同步,等该follower的LEO大于等于该Partition的hw,即follower追上leader后,就可以重新加入ISR
  • Leader故障

    • Leader发生故障后,会从ISR中选出一个新的leader,为了保证多个副本之间的数据一致性,其余的follower会先将各自的log文件高于hw的部分截掉(新leader自己不会截掉),然后从新的leader同步数据
      image-20210428181259559