Kafka故障转移工作原理与副本因子维持机制相关问题咨询
Kafka故障转移与副本因子工作逻辑解答
问题1:故障后新增broker是否会自动恢复3副本
不会,Apache Kafka原生集群默认不会自动完成副本恢复和数据同步:
- 分区的副本分配规则是创建分区时就确定的静态配置,原leader故障后,该分区的分配列表仍记录原来3个broker的ID,仅因其中一个节点离线导致实际可用副本降为2,集群不会自动修改分配规则。
- 要恢复为3副本,需要手动执行
kafka-reassign-partitions.sh工具,先生成分区重分配计划指定新broker为第三个副本的存储节点,再执行计划触发数据同步,待新副本全量同步完成并加入ISR列表后,副本数才会恢复到3。
问题2:集群提前存在闲置broker时的处理逻辑
和新增broker的场景逻辑一致,Kafka原生也不会自动把丢失的副本迁移到闲置broker上:
- Kafka原生仅支持自动leader选举、自动leader均衡(由配置项
auto.leader.rebalance.enable控制,默认开启),没有内置自动副本迁移、自动补全副本数的能力,因为副本全量同步会占用大量集群带宽和磁盘IO,自动触发可能抢占正常业务的资源。 - 该场景下要恢复3副本,同样需要手动发起分区重分配操作,将丢失的副本分配到闲置broker上,数据同步完成后即可恢复预期的副本数。
内容的提问来源于stack exchange,提问作者Bagira
相关产品推荐
相关产品推荐

