zoukankan      html  css  js  c++  java
  • 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接收投票信息。进行兴许处理



































  • 相关阅读:
    web前段学习2017.6.15
    web前段学习2017.6.13
    web前端2017.6.10
    web前段2017.6.8
    web前段学习2016.6.6
    宏任务与微任务
    浏览器兼容性问题
    TCP 和 UDP 的区别
    React如何渲染大数据量的列表?
    移动端兼容性问题
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6917971.html
Copyright © 2011-2022 走看看