ZK的初始化选举和崩溃选举过程

ZK的初始化选举和崩溃选举过程。小编来告诉你更多相关信息。ZK的初始化选举和崩溃选举过程小编为你讲解ZK的初始化选举和崩溃选举过程的相关知识,接下来小编为大家介绍。相关概念zxId:事务id,

ZK的初始化选举和崩溃选举过程。小编来告诉你更多相关信息。

ZK的初始化选举和崩溃选举过程

小编为你讲解ZK的初始化选举和崩溃选举过程的相关知识,接下来小编为大家介绍。

相关概念

  • zxId:事务id,
  • sId:节点id

先对比zxId,再对比sId,先投自己,选票内容(zxId,sId),遇强改投

  • 投票箱:每个节点在本地维护自己和其他节点的投票信息,改投时需要更新信息,并广播

节点状态:

  • LOOKING,竞选状态。
  • FOLLOWING,随从状态,同步leader状态,参与投票。
  • OBSERVING,观察状态,同步leader状态,不参与投票。
  • LEADING,领导者状态

初始化

假设没有数据,以5个节点为例

  • 节点1启动,此时只有一台服务器启动,它发出去的请求没有任何响应,所以它的选举状态一直是LOOKING状态
  • 节点2启动,它与节点1进行通信,互相交换自己的选举结果,由于两者都没有历史数据,所以serverId值较大的服务器2胜出,但是由于没有达到半数以上,所以服务器1,2还是继续保持LOOKING状态
  • 节点3启动,与1、2节点通信交互数据,服务器3成为服务器1,2,3中的leader,此时有三台服务器选举了3,所以3成为leader
  • 节点4启动,理论上服务器4应该是服务器1,2,3,4中最大的,但是由于前面已经有半数以上的服务器选举了服务器3,所以它只能切换为follower
  • 节点5启动,同4一样

ZK的初始化选举和崩溃选举过程

崩溃选举

  • 变更状态,leader故障后,follower进入looking状态
  • 各节点投票,先投自己(zxId,sId),再广播投票,
  • 接收到投票,对比zxId和sId,如果本节点小、则将票改为接收的投票信息,并记录投票信息,重新广播。否则本节点大、则可不做处理
  • 统计本地投票信息,超过半数,则切换为leading状态并广播

以上是网关于ZK的初始化选举和崩溃选举过程的具体介绍,小编希望给网友们带来一些知识。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅供展示。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 97552693@qq.com 举报,一经查实,本站将立刻删除。

给TA打赏
共{{data.count}}人
人已打赏
互联网

Windows开机自动修改系统时间

2023-11-6 9:08:41

互联网

如何在Ubuntu和非Nix操作系统上安装和使用Nix包管理器

2023-11-6 9:08:43

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索