kafka leader 选举

kafka 2.8 之前需要借助 zoopker 协调集群 >=2.8 kraft
zoopker 选主
  • zookeeper四种节点类型:

  • 持久:

    • PERSIST
    • PERSIST_SEQUENTIAL
  • 瞬时

    • EPHEMERAL
    • EPHEMERAL_SEQUENTIAL
  • Watch

    • 订阅后会先通知后得到数据
    • watch fire 后注册前节点发生变化是不会被监控到的
  • 选主方式

    • 非公平模式 抢注Leader节点
      • 先在根节点创建leader EPHEMERAL node 则成为leader
      • 可以自己放弃 leader 删除改节点
      • 其他节点watch 后可以抢注
    • 先到先得,后者监视前者
      • 每个创建都可以在根节点类型为EPHEMERAL_SEQUENTIAL的leader node
      • 注册的节点的id在所有子节点中最小,则当前客户端竞选Leader成功
      • 可以自己放弃 leader 删除改节点
  • Leader Election在Curator中的实现

    • LeaderLatch
    • LeaderSelector
  • 选举方式:

  • <= 0.8.2 每个Partition的多个Replica同时竞争Leader

  • 整个集群中选举出一个Broker作为Controller Controller为所有Topic的所有Partition指定Leader及Follower

posted @ 2022-07-20 11:20  vx_guanchaoguo0  阅读(155)  评论(0编辑  收藏  举报