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

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 副本最接近的。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
kafka ISR(In Sync Replica)是一种机制,用于确保在kafka集群中不会丢失消息。ISR是由leader维护的一组与其保持同步的replica副本。每个partition都有一个ISR集合,其中至少有一个存活的replica。保持ISR集合存活并且消息成功提交是确保kafka不丢失消息的关键。 在kafka 0.9.0.0版本之后,引入了一种更好的ISR维护方法。在此版本中,使用了参数replica.lag.time.max.ms来代替之前的replica.lag.max.messages。该参数表示允许follower副本在多长时间内不同步消息。只要在指定的时间范围内,follower有同步消息,就认为该follower处于ISR中。这样就避免了生产者一次发送大量消息到leader副本导致ISR频繁收缩和扩张的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Kafka ISR机制](https://blog.csdn.net/qq_19734597/article/details/119154221)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Kafka ISR 副本同步机制](https://blog.csdn.net/zchdjb/article/details/102927475)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值