假设一个经纪人长时间失败,那么这个经纪人所包含的粉丝和领导者会发生什么?
如果经纪人包含领导者且其中一个同步副本被选为领导者,是否会创建另一个同步副本(如果我们有特定的复制因素)?
如果经纪人包含关注者,是否会在群集中的其他位置创建另一个关注者?
现在假设经纪人在很长一段时间后醒来,现在领导者和追随者会在它失败时恢复吗?
答案 0 :(得分:14)
代理关闭时会发生什么情况取决于您的配置。它主要取决于这些配置设置:
min.insync.replicas
default.replication.factor
unclean.leader.election.enable
当经纪人倒闭时,Kafka不会创建新的副本。
如果离线经纪人是领导者,则从同步的副本中选出新的领导者。如果没有副本同步,则只有unclean.leader.election.enable
为真时才会选择不同步副本,否则分区将处于脱机状态。
如果离线经纪人是追随者,则领导者会将其标记为不同步。
重新启动代理时,它会尝试重新同步。一旦完成,它是否仍然是追随者或成为领导者取决于它是否是首选副本。
最后,如果您知道代理将长时间处于脱机状态并且仍需要副本,则可以使用重新分配工具kafka-reassign-partitions.sh
将分区移动到在线代理。