zk选举机制—第一次启动

第一台机器启动服务,发起选举,先投自己一票,查看当前集群中的其他zk服务,当前仅有一台;由于票数小于一半(不小于3),进入观察模式LOOKING,等待其他机器启动服务。

第二台机器启动服务,发起选举,都先投自己一票,查看是否有其他启动服务的机器;可查询到第一台机器,经过比对myid大小,第一台服务器将票改投给第二台服务器。由于票数小于一半(不小于3),进入观察模式LOOKING,等待其他机器启动服务。

第三台服务器启动,发起选举,交换信息后,三台机器都将票投给第三胎服务器,此时票数不小于一半且不小于三,那么第三台服务器为Leader,其余两台为Follower,并且状态发生改变,3为LEADING,1 2为FOLLOWING。

第四台服务器启动,发起选举,由于前三台服务器状态不是LOOKING,不会参与到选举,票数不会更改,所以4的票为1,3的为3,4的状态改为FOLLOWING。

第五台机器启动,发起选举,由于前四台服务器状态不是LOOKING,不会参与到选举,票数不会更改,所以5的票为1,4的票为1,3的为3,5的状态改为FOLLOWING。

zk选举机制—非第一次启动

当集群中的一台服务器出现以下两种情况,就会进行leader的选举。

​ 服务器初始化

​ 服务器运行期间和leaderx失联

当一台机器进行leader选举时会出现以下两种情况:

​ 当前集群存在leader

​ 进行选举的机器会被告知当前集群存在一个leader,那么该机器只需要与leader建立连接。

​ 当前集群不存在leader

​ 那么集群会先比较epoch,再比较zxid,最后比较sid。并按如下规则:

​ 1. EPOCH最大者直接成为leader

​ 2. EPOCH相同者,ZXID最大者成为leader

​ 3. ZXID相同者,SID最大者成为leader

​ EPOCH: :每个Leader任期的代号。没有Leader时同一轮投票过程中的逻辑时钟值是相同的。每投完一次票这个数据就会增加。

​ ZXID:事务ID。ZXID是一个事务ID,用来标识一次服务器状态的变更。在某一时刻,集群中的每台机器的ZXID值不一定完全一致,这和ZooKeeper服务器对于客户端“更新请求”的处理逻辑有关。

​ SID:服务器ID。用来唯一标识一台ZooKeeper集群中的机器,每台机器不能重复,和myid一致。

ZooKeeper 选举机制相关推荐

  1. 2021年大数据ZooKeeper(六):ZooKeeper选举机制

    目录 ​​​​​​ZooKeeper选举机制 概念 全新集群选举 非全新集群选举 ZooKeeper选举机制 zookeeper默认的算法是FastLeaderElection,采用投票数大于半数则胜 ...

  2. 学习笔记:Zookeeper选举机制

    1.Zookeeper选举机制 Zookeeper虽然在配置文件中并没有指定master和slave 但是,zookeeper工作时,是有一个节点为leader,其他则为follower Leader ...

  3. 理解zookeeper选举机制

    转载:https://www.cnblogs.com/shuaiandjun/p/9383655.html 一.zookeeper集群 配置多个实例共同构成一个集群对外提供服务以达到水平扩展的目的,每 ...

  4. ZooKeeper学习总结(4)——Zookeeper选举机制总结

    Zookeeper 是一个分布式服务框架,主要是用来解决分布式应用中遇到的一些数据管理问题如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等.我们可以简单把 Zookeeper 理解为 ...

  5. Zookeeper——选举机制原理与Leader和Follower作用

    摘要 本博文主要介绍Zookeeper的选举机制的原理与Zookeeper事务请求处理的原理. 一.zookeeper选举算法原理 Leader 服务器的作用是管理 ZooKeeper 集群中的其他服 ...

  6. zookeeper选举机制及相关概念

    一.zookeeper的一些概念 server和client: server 指集群的每一台机器 client 指每一个向server请求服务的机器 zookeeper角色: leader:为客户端提 ...

  7. Zookeeper选举机制测试

    集群分布式 三台物理机为112.113.114 112,为leader 113,为follower 114,为follower 宕机测试 比如,112宕机,关闭112服务器 检测到主节点宕机,113. ...

  8. Zookeeper(三)——选举机制

    Zookeeper 选举机制 第一次启动(五个节点): 服务1启动,发起一次选举,服务器1投自己一票,不够半数以上(3票),选举无法完成,服务器1状态为LOOKING 服务2启动,发起一次选举,服务器 ...

  9. 带你轻松理解Zookeeper的选举机制

    一,Zookeeper选举过程中服务器的状态. LOOKING:寻找leader状态,该状态下,服务器认为当前集群没有leader,会发起leader选举.在选举过程中,所有服务器的状态都是LOOKI ...

  10. Kaka与Zookeeper的爱恨情仇(——zookeeper过半选举机制)

    关于我们在学习kafka中的一些问题及架构,我想在这里浅谈一下我个人的理解: 之所以说这个kafka呢,主要还是最近做实时的项目中大量用到了kafka这个消息中间件,可以说kafka是我们大数据实时项 ...

最新文章

  1. Ubuntu下安装Stanford CoreNLP
  2. 2019年美国国家人工智能战略报告(中文翻译版)
  3. android里的editText怎么用,Android自定义控件EditText使用详解
  4. linux下vim命令详解
  5. 光流(Optical Flow)简介
  6. CentOS7.2最小化安装后系统优化
  7. 安装sphinx的php扩展,安装php扩展sphinx
  8. 856. Score of Parentheses
  9. cronmon 定时任务执行状态监控
  10. Sublime Text 如何连接 FTP/SFTP ——图文详细教程
  11. Python实现Mean Shift算法
  12. python执行bat文件_利用python执行.bat文件
  13. 计算机桌面音量键在哪,电脑音量调节快捷键_电脑音量快捷键设置
  14. HMI-36-【节能模式】开搞
  15. linux防护勒索病毒的补丁,抵御Petya勒索病毒的最新办法
  16. 杨百翰大学计算机科学,杨百翰大学
  17. 笔记本快捷键(fl980)
  18. Windows2008下安装域控DC及加域
  19. 05-现代威胁环境下的10个SIEM用例
  20. 最新字节跳动面试题与岗位层级,绩效考核制度介绍

热门文章

  1. ORACLE归档日志增大的原因
  2. 学会这10种定时任务,我有点飘了
  3. Markdown语法介绍(详细)
  4. 使用setBounds()函数设置Java布局
  5. python多线程爬取qq好友空间的留言
  6. 关于《数据出境安全评估办法》,来看看3位行业专家的不同视角
  7. 什么是Handler
  8. 悲伤是一种毒,会上瘾
  9. C++ rand的用法
  10. INFOR ERP LN 创建表