首页/数据/数据工程与 ETL 速查/min.insync.replicas 最小同步副本
Kafka64 条

min.insync.replicas 最小同步副本

min.insync.replicas 是 acks=all 生效的底线:当 ISR 数量低于该值,生产者写入直接失败(NotEnoughReplicas),用可用性换取一致性。

位置Broker 默认值与主题级配置,作用于 acks=all 的写入
典型设置副本因子 3 配 min.insync.replicas=2
失败表现NotEnoughReplicasException,消息未写入

设置与验证

设置与验证
kafka-configs.sh --bootstrap-server localhost:9092 \
  --entity-type topics --entity-name orders --alter \
  --add-config min.insync.replicas=2
kafka-configs.sh --bootstrap-server localhost:9092 \
  --entity-type topics --entity-name orders --describe
设置值大于副本数会导致该主题一直不可写;调整副本因子后要同步核对这个参数。

易错点

  • 降副本因子(如从 3 到 2)后忘记改 min.insync.replicas=3,会造成周期性写入失败
  • 分区级配置可覆盖主题级配置,排错时要按分区核对生效值

数据来源与参考

  • Apache Kafka 官方文档:Topic Configs(min.insync.replicas)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌