>假设一个经纪人长时间关闭,那么这个经纪人所包含的追随者和领导者会发生什么?
-
如果代理包含一个 Leader 并且其中一个同步副本被选为领导者,它是否会创建另一个同步副本(如果我们有特定的复制因子)?
-
如果代理包含追随者,它是否会在集群中的其他地方创建另一个追随者?
现在 假设经纪人在很长一段时间后醒来,现在领导者和追随者是否恢复了它倒下时离开时的样子?
代理关闭时会发生什么取决于您的配置。这主要取决于以下配置设置:
-
min.insync.replicas
-
default.replication.factor
-
unclean.leader.election.enable
Kafka 不会在代理出现故障时创建新的副本。
如果脱机代理是领导者,则会从同步的副本中选出新的领导者。如果没有副本同步,则只有在 unclean.leader.election.enable
为 true 时才会选择不同步的副本,否则分区将脱机。
如果离线经纪商是追随者,则领导者将其标记为不同步。
重新启动代理时,它将尝试恢复同步。一旦完成,它是保持追随者还是成为领导者取决于它是否是首选的副本。
最后,如果您知道代理将长时间脱机并且仍然需要副本,则可以使用重新分配工具kafka-reassign-partitions.sh
将分区移动到联机代理。