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节点
-
Leader Election在Curator中的实现
- LeaderLatch
- LeaderSelector
-
选举方式:
-
<= 0.8.2 每个Partition的多个Replica同时竞争Leader
-
整个集群中选举出一个Broker作为Controller Controller为所有Topic的所有Partition指定Leader及Follower
本文来自博客园,作者:vx_guanchaoguo0,转载请注明原文链接:https://www.cnblogs.com/guanchaoguo/p/16497235.html