【问题标题】:what happens after a broker is down in a cluster?代理在集群中关闭后会发生什么?
【发布时间】:2018-10-01 07:11:41
【问题描述】:

假设一个代理长时间宕机,那么这个代理所包含的追随者和领导者会发生什么?

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

  • 如果代理包含一个追随者,它是否会在集群的其他地方创建另一个追随者?

  • 现在假设broker在很长一段时间后醒来,现在leader和follower是否恢复到它宕机时离开的样子?

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

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

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

    当代理出现故障时,Kafka 不会创建新副本。

    如果离线代理是领导者,则从同步的副本中选出一个新的领导者。如果没有同步的副本,它只会在unclean.leader.election.enable 为真时选择一个不同步的副本,否则分区将离线。

    如果离线代理是跟随者,它将被领导者标记为不同步。

    重新启动代理时,它将尝试恢复同步。完成后,它是跟随者还是成为领导者取决于它是否是首选副本。

    最后,如果您知道某个 broker 将长时间离线并且仍然需要副本,您可以使用重新分配工具 kafka-reassign-partitions.sh 将分区移动到在线 broker。

    【讨论】:

      猜你喜欢
      • 2016-02-02
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 2020-01-18
      相关资源
      最近更新 更多