经纪人在集群中崩溃后会发生什么?

时间:2017-11-06 07:55:55

标签: apache-kafka

假设一个经纪人长时间失败,那么这个经纪人所包含的粉丝和领导者会发生什么?

  • 如果经纪人包含领导者且其中一个同步副本被选为领导者,是否会创建另一个同步副本(如果我们有特定的复制因素)?

  • 如果经纪人包含关注者,是否会在群集中的其他位置创建另一个关注者?

  • 现在假设经纪人在很长一段时间后醒来,现在领导者和追随者会在它失败时恢复吗?

1 个答案:

答案 0 :(得分:14)

代理关闭时会发生什么情况取决于您的配置。它主要取决于这些配置设置:

  • min.insync.replicas
  • default.replication.factor
  • unclean.leader.election.enable

当经纪人倒闭时,Kafka不会创建新的副本。

如果离线经纪人是领导者,则从同步的副本中选出新的领导者。如果没有副本同步,则只有unclean.leader.election.enable为真时才会选择不同步副本,否则分区将处于脱机状态。

如果离线经纪人是追随者,则领导者会将其标记为不同步。

重新启动代理时,它会尝试重新同步。一旦完成,它是否仍然是追随者或成为领导者取决于它是否是首选副本。

最后,如果您知道代理将长时间处于脱机状态并且仍需要副本,则可以使用重新分配工具kafka-reassign-partitions.sh将分区移动到在线代理。