什么是 ISR,为什么需要引入 ISR

文章讲述了Kafka中Partition副本设计的关键要素,特别是ISR(In-SyncReplica)在确保数据同步效率和防止数据丢失中的作用。ISR列表包含与Leader副本数据同步的最新Follower副本,从而提升系统性能并保证数据一致性。

Partition 副本

发送到 Kafka Broker 上的消息,最终是以 Partition 的物理形态来存储到磁盘上的。(如图)而 Kafka 为了保证 Parititon 的可靠性,提供了 Paritition 的副本机制,然后在这些 Partition 副本集里面。存在 Leader Partition 和 Flollower Partition。生产者发送过来的消息,会先存到 Leader Partition 里面,然后再把消息复制到Follower Partition,这样设计的好处就是一旦 Leader Partition 所在的节点挂了,可以重新从剩余的Partition 副本里面选举出新的 Leader。然后消费者可以继续从新的 Leader Partition 里面获取未消费的数据。

在 Partition 多副本设计的方案里面,有两个很关键的需求:

  • 副本数据的同步
  • 新 Leader 的选举

ISR

这两个需求都需要涉及到网络通信,Kafka 为了避免网络通信延迟带来的性能问题,以及尽可能的保证新选举出来的 Leader Partition 里面的数据是最新的,所以设计了ISR 这样一个方案。ISR 全称是 in-sync replica,它是一个集合列表,里面保存的是和 Leader Parition 节点数据最接近的 Follower Partition如果某个 Follower Partition 里面的数据落后 Leader 太多,就会被剔除 ISR 列表。简单来说,ISR 列表里面的节点,同步的数据一定是最新的,所以后续的 Leader 选举,只需要从 ISR 列表里面筛选就行了。所以,我认为引入 ISR 这个方案的原因有两个
  • 尽可能的保证数据同步的效率,因为同步效率不高的节点都会被踢出 ISR 列表。
  • 避免数据的丢失,因为 ISR 里面的节点数据是和 Leader 副本最接近的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值