Kafka64 条

副本与 ISR 机制

每个分区有一个 Leader 和若干 Follower:Follower 持续从 Leader 拉取并追赶,跟得上的副本构成 ISR(In-Sync Replicas);Leader 故障时优先从 ISR 中选举新 Leader。

Leader处理读写请求的副本
Follower异步拉取 Leader 数据,保持同步
ISR与 Leader 保持同步的副本集合,可收缩可恢复

ISR 观察

ISR 观察
kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic orders
# Partition: 0 Leader: 2 Replicas: 2,3,1 Isr: 2,1     ← 3 号副本暂未同步
ISR 收缩本身是保护动作;若持续收缩或反复抖动,优先查 Broker 磁盘 IO、网络与 GC。

易错点

  • replica.lag.time.max.ms 决定副本多久未同步被踢出 ISR(较新版本默认 30 秒)
  • 副本落后期间若 Leader 宕机,只有 ISR 内副本能参选,未同步数据可能丢失

数据来源与参考

  • Apache Kafka 官方文档:Replication
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌