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

首先发送到Kafka Broker上面的一些消息,最终是以Partition的一个物理形态来存储到磁盘上面的。Kafka为了去保证Partition的一个可靠性,提供了Partition的一个副本机制。在Partition副本集里面,存在Leader Partition和一些Follower Partition。生产者发送消息时,会先把消息存在Leader Partition里面,然后再把消息复制到Follower Partition里面。这样设计的好处是,一旦Leader Partition所在的节点挂了,我们可以重新从剩下的Partition副本里选举出新的Leader。消费者可以继续从新的Leader Partition里面去获取没有被消费过的数据。在Partition的多副本设计方案里面,有两个非常关键的需求,第一个是副本数据的同步;第二个是新Leader的选举,而这两个需求都需要涉及到网络通信。Kafka为了避免网络通信延迟带来的性能问题,尽可能的保证新选举出来的Leader Partition里面的数据是最新的,所以设计了一个ISR的方案。ISR全称叫in-sync replica,它是一个集合列表,里面保存的是和Leader Partition节点的数据最接近的所有的Follower Partition节点。如果某一个Follower Partition里面的数据落后Leader太多,那么这个节点就会被踢出ISR的列表。简单来说,ISR列表里面的节点,同步的数据一定是最新的。所以后续新的Leader选举,我们只需要从ISR列表里面去筛选就好了。引入ISR设计方案的原因有两个:

1、尽可能的保证数据同步的效率,因为同步效率不高的节点会被踢出ISR列表;

2、避免数据的丢失,因为ISR里面的节点数据是和Leader最接近的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值