码迷,mamicode.com
首页 > 其他好文 > 详细

ZooKeeper启动过程2:FastLeaderElection

时间:2014-11-25 14:10:32      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   ar   os   使用   for   strong   on   

前一篇文章中说到,启动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接收投票信息,进行后续处理

bubuko.com,布布扣

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

ZooKeeper启动过程2:FastLeaderElection

标签:blog   http   io   ar   os   使用   for   strong   on   

原文地址:http://www.cnblogs.com/catWang/p/4120669.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!