03 副本与 ISR

副本与 ISR

leader 接受写入,follower 主动拉取;ISR 是正在跟上 leader 的副本集合,high watermark 限制普通消费者可见的已复制范围。
版本:Apache Kafka 4.4.0(KRaft);核实日期:2026-11-12。官方在线文档可能继续更新,源码链接固定到对应发布标签。图为原理抽象,省略非本页重点。
specification { element actor { style { shape person; color amber } } element system { style { color muted } } element component { style { color primary } } element storage { style { shape storage; color green } } } model { p = actor '生产者' l = system '分区 leader' f = system '同步 follower' ctrl = component 'Controller' c = actor '消费者' } views { dynamic view index { title '核心链路' variant sequence p -> l 'Produce,示例 acks=all' l -> l '追加记录并推进 LEO' f -> l 'Fetch 请求复制' l -> f '返回新增记录' f -> l '后续 Fetch 携带已推进的位置' l -> l '跟踪 ISR 复制进度并推进 HW' l -> p '满足确认条件后返回成功' c -> l 'Fetch 已提交范围内的记录' l -> ctrl '需要时请求更新 ISR / 分区状态' } }

关键判断

  • LEO 是日志末端,HW 是已复制提交边界;read_committed 还受到事务的 last stable offset 限制。
  • 副本落后超限会退出 ISR;启用相应配置时,acks=all 与 min.insync.replicas 联合约束写入可用性。
  • 4.4 的 leader 选举还可能涉及 ELR(Eligible Leader Replicas),不能把所有安全候选都机械等同于当前 ISR。

边界

ISR 不是多数派 Raft 投票集;本页业务分区复制与下一页 KRaft 元数据仲裁不能互换。

官方出处与源码

回到首页 · 上一篇 · 下一篇