【问题标题】:leader election in zookeeper and Kafkazookeeper和Kafka的leader选举
【发布时间】:2017-05-11 02:55:32
【问题描述】:

一个问题困扰了我很久。我知道领导者选举存在于 zookeeper 中。假设我们有一个与 Zookeeper ensemble 连接的 Kafka 集群。

所以我的理解是,Ensemble 中有一个 zookeeper 领导者,Kafka 集群中也有一些“分区领导者”。 Kafka分区领导者是通过Zookeeper API选举产生的。对吗?

另外一个问题,master/worker和leader/follower基本一样吗?

【问题讨论】:

    标签: apache-kafka apache-zookeeper


    【解决方案1】:

    Kafka中的分区leader选举不是通过zookeeper API来完成的,实际上alive assign replicas中的第一个replica会被选举为每个partition的leader。

    关于master/worker的东西,据我所知,很多开源已经用leader/replica或者primary/replica代替了旧的术语,所以基本上都是一样的。

    【讨论】:

    • 谢谢。您能否提供有关“他在活动分配副本中的第一个副本将被选为每个分区的领导者”的链接。我想了解更多。
    【解决方案2】:
    1. Zookeeper 领导者选举与 Kafka 分区领导者选举无关,反之亦然。
    2. Kafka partition leader由Controller选举,Controller是注册的Broker Zookeeper 的路径 /Controller/2,2 中的第一个是 broker.id。 当一个broker宕机时,这个broker中的leader partition(或leader replica)会被Controller切换,Controller会在ISR中选择一个replica作为partition的leader。 如果此分区离线(所有副本都不可用),则此分区不能用于写入或读取。如果你设置unclean.leader.election.enable=true,那么第一个可用的副本将被选为分区领导者,无论它是否在ISR中。 所以有些消息可能会丢失。
    3. Kafka 和 Zookeeper 使用领导者/跟随者,而不是主/从者

    【讨论】:

      猜你喜欢
      • 2020-08-02
      • 2019-02-08
      • 1970-01-01
      • 2016-05-11
      • 1970-01-01
      • 2017-11-20
      • 2022-01-19
      • 2021-09-11
      • 2019-02-10
      相关资源
      最近更新 更多