Kafka的in-sync replica set机制和HighWatermark的作用

目录

一、什么是ISR (in-sync replica set )

二、什么是OSR(out-of-sync-replica set)

三、什么是AR(Assign Replicas)

四、HighWatermark的作用



一、什么是ISR (in-sync replica set )

leader会维持一个与其保持同步的replica集合,该集合就是ISR,每一个leader partition都有一
个ISR,leader动态维护, 要保证kafka不丢失message,就要保证ISR这组集合存活(至少有一个存活),
并且消息commit成功

Partition leader 保持同步的 Partition Follower 集合, 当 ISR 中的Partition Follower 
完成数据的同步之后,就会给 leader 发送 ack

如果Partition follower长时间(replica.lag.time.max.ms) 未向leader同步数据,则该
Partition Follower将被踢出ISR
Partition Leader 发生故障之后,就会从 ISR 中选举新的 Partition Leader。

二、什么是OSR(out-of-sync-replica set)

与leader副本分区 同步滞后过多的副本集合

三、什么是AR(Assign Replicas)

分区中所有副本统称为AR AR=ISR+OSR

四、HighWatermark的作用

背景 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同步数据

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值