前一篇文章中说到,启动ZooKeeper集群时,需要分别启动集群中的各个节点,各节点以QuorumPeer的形式启动,最后到达startLeaderElection和lookForLeader。

先说startLeaderElection

首先,初始化节点自身的currentVote【当前投票】为【myid、zxid、currentEpoch】

然后,初始化选举算法createElectionAlgorithm,默认使用FastLeaderElection算法,在这里,启动两个线程WorkerSender、WorkerReceiver,分别用于向其他所有节点发送自己的投票信息、接收并处理其他节点发送给自己的投票信息。

再说lookForLeader

首先,初始化节点自身的逻辑时钟【logicalclock】,同时初始化节点的投票信息:proposedLeader【myid中读取】、proposedZxid【data目录中读取,默认为0】、proposedEpoch【data目录中读取,默认为0】

然后,向集群中所有节点发送投票信息【包括自身】,使用WorkerSender发送,所有节点使用WorkerReceiver接收投票信息,进行后续处理

转自http://blog.csdn.net/xuefeng0707/article/details/40687625

转载于:https://www.cnblogs.com/catWang/p/4120669.html

ZooKeeper启动过程2:FastLeaderElection相关推荐

  1. ZooKeeper启动过程

    ZooKeeper启动过程 1.如何启动 zkServer.sh[Linux]或 zkServer.cmd[Windows] 以zkServer.cmd为例(zkServer.sh中内容太多): 可以 ...

  2. zookeeper源码分析之一服务端启动过程

    zookeeper简介 zookeeper是为分布式应用提供分布式协作服务的开源软件.它提供了一组简单的原子操作,分布式应用可以基于这些原子操作来实现更高层次的同步服务,配置维护,组管理和命名.zoo ...

  3. 一次zookeeper启动失败的解决过程

    大数据平台:MRS 8.1.2.2 最近集群出现了问题,zookeeper组件常常自动恢复,且造成了hive.hbase等组件在zookeeper上注册失败. 通过观察zookeeper日志,发现大量 ...

  4. 启动zookeeper_Zookeeper原理篇-Zookeeper启动流程分析

    前言 上篇我们通过了解Paoxs算法开始,到Zab协议的两大特性:崩溃恢复和消息广播,学习了Zookeeper是如何通过Zab协议实现高可用,本篇开始我们来学习Zookeeper的启动流程 单机模式启 ...

  5. Zookeeper启动流程浅析

    文章目录 前言 一.启动 二.服务端启动流程 1.zkServer.cmd脚本源码 2.QuorumPeerMain 3.runFromConfig集群启动 4.QuorumPeer run方法 选举 ...

  6. Nimbus三Storm源码分析--Nimbus启动过程

    Nimbus server, 首先从启动命令开始, 同样是使用storm命令"storm nimbus"来启动 看下源码, 此处和上面client不同, jvmtype=" ...

  7. Windows下Zookeeper启动zkServer.cmd闪退问题的解决方案

    本人今天在使用RPC的过程中使用Zookeeper作为中间节点服务器.在windows中启动Zookeeper 在windows启动Zookeeper双击zkServer.cmd(但是需要保证安装了j ...

  8. Zookeeper启动和Leader选举机制

    Zookeeper启动流程 zookeeper服务器有4个状态: LOOKING:寻找Leader FOLLOWING:作为Follower LEADING:作为Leader OBSERVING:作为 ...

  9. Zookeeper启动成功后拒绝连接的解决方案

    zookeeper启动成功后zkServer.sh status出错 一.问题出现情形 运行zookeeperd后显示启动成功:JMX enabled by default Using config: ...

最新文章

  1. 第二章:2.2 LTI系统解的分析
  2. 【leetcode】56. Merge Intervals 相邻线段归并
  3. Backbone React Requirejs 应用实战(一)——RequireJS管理React依赖
  4. 【学习笔记】mongodb的使用(二)flask项目使用mongodb实现人员管理系统
  5. java发送小程序模板消息,记录_小程序发送模板消息
  6. Remove Duplicates from Sorted Array II leetcode java
  7. 一道充满歧义的思维题,全网唯一刁钻分析
  8. scala 提取器模式匹配_Scala提取器应用,取消应用和模式匹配
  9. 网站访客 简易日志记录
  10. 金融市场联动相关、风险测度、风险溢出 Copula、CoVaR、Garch、DCC、藤Vine、BEKK、SV、ECM
  11. 惠普打印机故障代码_HP打印机通用报错代码含义及惠普打印机错误提示排除方法...
  12. 微信wifi服务器地址,微信连WIFI服务器时钟不同步
  13. Zhishi.me - Weaving Chinese Linking Open Data
  14. 网络架构采用 bs/cs 混搭模式_最高处|SM一姐出道20年充满偶像气质天生音乐才能还有最高级的混搭_休闲...
  15. 拿到20W年薪offer的面试总结
  16. C++ RALL机制详解
  17. 【NRF51822】百度手环开源源码分析--数据自动同步部分
  18. 【博弈论】【第一章】博弈论导论
  19. 太平洋大西洋水流问题
  20. NestJS + TypeGraphQL + MySQL 从入门到实战视频教程(35 个视频)

热门文章

  1. ASP.NET 程序优化
  2. Office开发程序集版本及部署问题
  3. js对象序列化为json字符串
  4. 如何将word中的对象怎么显示到工具栏_MathType怎么添加到Word快速访问栏?
  5. C++插入中文到mysql乱码
  6. 星痕 轻松实现大屏数据可视化_数据美的历程有多难?大屏可视化轻松帮你实现...
  7. sql语句lastupdate使用数据库库函数
  8. 防抖函数和节流函数的实现,这个是在某保险公司笔试题遇到的。
  9. BurpSuite插件 -- FastjsonScan(反序列化检测)
  10. mysql 删除版本信息_linux 删除mysql