Kafka集群-数据可靠性-Consumer数据一致性问题(LEO和HW)

Log文件中的HW 和 LEO

 

 

LEO(Log End Offset)

  每个副本的最后一个Offset

HW(High Watermark)

  是控制消费者可读取消息范围的重要字段。所有副本中最小的LEO,ISR队列中最小的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同步数据

 

注意:

  这只能保证副本之间数据的一致性,不能保证数据不丢失或者不重复。

  

 

posted @ 2020-11-02 09:54  KevinT·Mitnick  阅读(363)  评论(0)    收藏  举报