Kafka如何保持数据一致性
发布时间:2020-07-09 08:05:53 阅读:352

数据一致性

两个名词

  • LEO(Log End Offset) 每个副本的最大offset
  • HW(High Watermark) 消费者能看到的最大offset,ISR队列中最小的LEO

保持一致性得两个场景

  • follower故障(长时间未向leader同步数据 时间阈值:replica.lag.time.max.ms):
    会被临时踢出ISR,等该follower恢复后,follower会读取本地磁盘上次记录的HW,并将log文件高于HW的地方截取掉,从HW开始向leader进行同步,等follower的LEO大于等于该Partition的HW,追上leader以后,就可以重新加入ISR。
  • leader故障:
    leader发生故障以后会从follower重新选举一个leader,为了保持数据一致性,从剩下follower的log中截掉高于HW的消息,然后从新leader同步数据
    只能保证数据一致性问题,并不能保证数据不丢失或者不重复
发表评论
使用 Nuxt 3 构建 | 部署于 Kubernetes | 托管于 狗云
Copyright © 2020-2024 | 网站已续航 1760 天