ZooKeeper启动过程2:FastLeaderElection
前一篇文章中说到,启动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相关推荐
- ZooKeeper启动过程
ZooKeeper启动过程 1.如何启动 zkServer.sh[Linux]或 zkServer.cmd[Windows] 以zkServer.cmd为例(zkServer.sh中内容太多): 可以 ...
- zookeeper源码分析之一服务端启动过程
zookeeper简介 zookeeper是为分布式应用提供分布式协作服务的开源软件.它提供了一组简单的原子操作,分布式应用可以基于这些原子操作来实现更高层次的同步服务,配置维护,组管理和命名.zoo ...
- 一次zookeeper启动失败的解决过程
大数据平台:MRS 8.1.2.2 最近集群出现了问题,zookeeper组件常常自动恢复,且造成了hive.hbase等组件在zookeeper上注册失败. 通过观察zookeeper日志,发现大量 ...
- 启动zookeeper_Zookeeper原理篇-Zookeeper启动流程分析
前言 上篇我们通过了解Paoxs算法开始,到Zab协议的两大特性:崩溃恢复和消息广播,学习了Zookeeper是如何通过Zab协议实现高可用,本篇开始我们来学习Zookeeper的启动流程 单机模式启 ...
- Zookeeper启动流程浅析
文章目录 前言 一.启动 二.服务端启动流程 1.zkServer.cmd脚本源码 2.QuorumPeerMain 3.runFromConfig集群启动 4.QuorumPeer run方法 选举 ...
- Nimbus三Storm源码分析--Nimbus启动过程
Nimbus server, 首先从启动命令开始, 同样是使用storm命令"storm nimbus"来启动 看下源码, 此处和上面client不同, jvmtype=" ...
- Windows下Zookeeper启动zkServer.cmd闪退问题的解决方案
本人今天在使用RPC的过程中使用Zookeeper作为中间节点服务器.在windows中启动Zookeeper 在windows启动Zookeeper双击zkServer.cmd(但是需要保证安装了j ...
- Zookeeper启动和Leader选举机制
Zookeeper启动流程 zookeeper服务器有4个状态: LOOKING:寻找Leader FOLLOWING:作为Follower LEADING:作为Leader OBSERVING:作为 ...
- Zookeeper启动成功后拒绝连接的解决方案
zookeeper启动成功后zkServer.sh status出错 一.问题出现情形 运行zookeeperd后显示启动成功:JMX enabled by default Using config: ...
最新文章
- 第二章:2.2 LTI系统解的分析
- 【leetcode】56. Merge Intervals 相邻线段归并
- Backbone React Requirejs 应用实战(一)——RequireJS管理React依赖
- 【学习笔记】mongodb的使用(二)flask项目使用mongodb实现人员管理系统
- java发送小程序模板消息,记录_小程序发送模板消息
- Remove Duplicates from Sorted Array II leetcode java
- 一道充满歧义的思维题,全网唯一刁钻分析
- scala 提取器模式匹配_Scala提取器应用,取消应用和模式匹配
- 网站访客 简易日志记录
- 金融市场联动相关、风险测度、风险溢出 Copula、CoVaR、Garch、DCC、藤Vine、BEKK、SV、ECM
- 惠普打印机故障代码_HP打印机通用报错代码含义及惠普打印机错误提示排除方法...
- 微信wifi服务器地址,微信连WIFI服务器时钟不同步
- Zhishi.me - Weaving Chinese Linking Open Data
- 网络架构采用 bs/cs 混搭模式_最高处|SM一姐出道20年充满偶像气质天生音乐才能还有最高级的混搭_休闲...
- 拿到20W年薪offer的面试总结
- C++ RALL机制详解
- 【NRF51822】百度手环开源源码分析--数据自动同步部分
- 【博弈论】【第一章】博弈论导论
- 太平洋大西洋水流问题
- NestJS + TypeGraphQL + MySQL 从入门到实战视频教程(35 个视频)
热门文章
- ASP.NET 程序优化
- Office开发程序集版本及部署问题
- js对象序列化为json字符串
- 如何将word中的对象怎么显示到工具栏_MathType怎么添加到Word快速访问栏?
- C++插入中文到mysql乱码
- 星痕 轻松实现大屏数据可视化_数据美的历程有多难?大屏可视化轻松帮你实现...
- sql语句lastupdate使用数据库库函数
- 防抖函数和节流函数的实现,这个是在某保险公司笔试题遇到的。
- BurpSuite插件 -- FastjsonScan(反序列化检测)
- mysql 删除版本信息_linux 删除mysql