摘要:/** * LearnerHandler.start() */ @Override public void run() { try { while (true) { qp = new QuorumPacket(); ia.readRecord(qp, "packet"); long traceMas
阅读全文
摘要:/** * 和Leader同步数据 */ void syncWithLeader(long newLeaderZxid) throws IOException { // Follower启动服务 zk.startup(); } public synchronized void startup() {
阅读全文
摘要:void followLeader() { try { QuorumServer leaderServer = findLeader(); try { // 与Leader建立连接,Leader端LearnHandle处理 connectToLeader(leaderServer.addr, lea
阅读全文
摘要:/** * Leader#lead() * <p> * 当前节点是Leader */ void lead() throws IOException, InterruptedException { try { zk.loadData(); // leaderStateSummary-如果有更新的节点突
阅读全文
摘要:QuorumPeerMain.main /** * Zookeeper入口方法 * * To start the replicated server specify the configuration file name on * the command line. * * @param args
阅读全文
摘要:/** * FastLeaderElection.lookForLeader * 选举核心方法 */ public Vote lookForLeader() throws InterruptedException { try { // 收票箱(节点状态是LOOKING发来的投票信息) HashMap
阅读全文
摘要:FastLeaderElection.Messenger 投票信息传输 protected class Messenger { WorkerSender ws; WorkerReceiver wr; Messenger(QuorumCnxManager manager) { this.ws = ne
阅读全文
摘要:Messenger.WorkerSender 发送投票信息工作线程 class WorkerSender extends ZooKeeperThread { volatile boolean stop; QuorumCnxManager manager; WorkerSender(QuorumCnx
阅读全文
摘要:Messenger.WorkerReceiver 接收投票信息工作线程 class WorkerReceiver extends ZooKeeperThread { volatile boolean stop; QuorumCnxManager manager; WorkerReceiver(Quo
阅读全文