【发布时间】:2018-10-01 07:11:41
【问题描述】:
假设一个代理长时间宕机,那么这个代理所包含的追随者和领导者会发生什么?
如果代理包含一个领导者,并且其中一个同步副本被选为领导者,它是否会创建另一个同步副本(如果我们有特定的复制因子)?
如果代理包含一个追随者,它是否会在集群的其他地方创建另一个追随者?
现在假设broker在很长一段时间后醒来,现在leader和follower是否恢复到它宕机时离开的样子?
【问题讨论】:
标签: apache-kafka
假设一个代理长时间宕机,那么这个代理所包含的追随者和领导者会发生什么?
如果代理包含一个领导者,并且其中一个同步副本被选为领导者,它是否会创建另一个同步副本(如果我们有特定的复制因子)?
如果代理包含一个追随者,它是否会在集群的其他地方创建另一个追随者?
现在假设broker在很长一段时间后醒来,现在leader和follower是否恢复到它宕机时离开的样子?
【问题讨论】:
标签: apache-kafka
代理关闭时会发生什么取决于您的配置。这主要取决于这些配置设置:
min.insync.replicasdefault.replication.factorunclean.leader.election.enable当代理出现故障时,Kafka 不会创建新副本。
如果离线代理是领导者,则从同步的副本中选出一个新的领导者。如果没有同步的副本,它只会在unclean.leader.election.enable 为真时选择一个不同步的副本,否则分区将离线。
如果离线代理是跟随者,它将被领导者标记为不同步。
重新启动代理时,它将尝试恢复同步。完成后,它是跟随者还是成为领导者取决于它是否是首选副本。
最后,如果您知道某个 broker 将长时间离线并且仍然需要副本,您可以使用重新分配工具 kafka-reassign-partitions.sh 将分区移动到在线 broker。
【讨论】: