摘要: Follower是 follower节点启动的和leader进行同步的功能类 主要逻辑如下: 1.和leader建立链接 2.向leader发送自己的epoch和zxid. 处理来自leader的数据包 阅读全文
posted @ 2017-08-21 13:41 liron 阅读(458) 评论(0) 推荐(0) 编辑
摘要: QuorumPeer是zookeeper执行同步,选主过程的线程 主要逻辑: 1.当自己处于 LOOKING状态: 执行lookForLeader() 2.当自己处于OBSERVING状态: 建立一个Observer服务和leader进行同步 3.当自己处于LEADING时: 建立一个Leader服 阅读全文
posted @ 2017-08-21 13:29 liron 阅读(733) 评论(0) 推荐(1) 编辑
摘要: FastLeaderElection是zookeeper默认的选举算法,当peer处于ServerState.Looking状态时会执行FastLeaderElection.lookForLeader进行选主. 重要数据结构: 1.HashMap<Long, Vote> recvset: 本轮选举中 阅读全文
posted @ 2017-08-21 13:18 liron 阅读(462) 评论(0) 推荐(0) 编辑
摘要: Leader中重要的数据结构: 1.ConcurrentMap<Long, Proposal> outstandingProposals: 维护了待follower同步的proposal. 由 leader.propose负责插入, 由 leader.processAck负责移除. 2.Concur 阅读全文
posted @ 2017-08-21 12:57 liron 阅读(626) 评论(0) 推荐(0) 编辑
摘要: LeanerHandler是Leader接收Follower和Observer连接请求一个线程,当leader election结束后,follower或observer会主动连接leader,并向leader发送自己的 epoch 和 zxid,以供leader选出最大的epoch. zookee 阅读全文
posted @ 2017-08-21 11:08 liron 阅读(311) 评论(0) 推荐(0) 编辑