本篇內(nèi)容主要講解“zk中l(wèi)eader和follower啟動時信息交互分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“zk中l(wèi)eader和follower啟動時信息交互分析”吧!
創(chuàng)新互聯(lián)建站主要從事網(wǎng)頁設(shè)計、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、成都響應(yīng)式網(wǎng)站建設(shè)、程序開發(fā)、網(wǎng)站優(yōu)化、微網(wǎng)站、成都微信小程序等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的網(wǎng)站制作、成都網(wǎng)站設(shè)計、網(wǎng)站設(shè)計、網(wǎng)絡(luò)營銷經(jīng)驗,集策劃、開發(fā)、設(shè)計、營銷、管理等多方位專業(yè)化運(yùn)作于一體。
QuorumPeer中讀取節(jié)點狀態(tài)信息,不同狀態(tài)下設(shè)置不同角色
1 Leader啟動Follower接收器LearnerCnxAcceptor
LearnerCnxAcceptor負(fù)責(zé)接收非leader連接請求,線程中創(chuàng)建LearnerHandler處理器
2 Learner發(fā)起和leader的連接
Follower.followLeader()
Observer.observeLeader()
3 leader啟動時會創(chuàng)建LearnerHandler
每個learnerHandler實例都對應(yīng)一個leader和learner之間的連接,負(fù)責(zé)消息通信和
數(shù)據(jù)同步
4 向leader注冊
learner和leader連接后。會向leader注冊,即learner服務(wù)器基礎(chǔ)信息
LearnerInfo zxid,sid發(fā)送給leader服務(wù)器
5 leader 接收到learner信息 服務(wù)器算出最新epoch
@Override public long getEpochToPropose(long sid, long lastAcceptedEpoch) throws InterruptedException, IOException { synchronized (connectingFollowers) { if (!waitingForNewEpoch) { return epoch; } if (lastAcceptedEpoch >= epoch) { epoch = lastAcceptedEpoch + 1; } if (isParticipant(sid)) { connectingFollowers.add(sid); } QuorumVerifier verifier = self.getQuorumVerifier(); if (connectingFollowers.contains(self.getId()) && verifier.containsQuorum(connectingFollowers)) { waitingForNewEpoch = false; self.setAcceptedEpoch(epoch); connectingFollowers.notifyAll(); } else { long start = Time.currentElapsedTime(); if (sid == self.getId()) { timeStartWaitForEpoch = start; } long cur = start; long end = start + self.getInitLimit() * self.getTickTime(); while (waitingForNewEpoch && cur < end && !quitWaitForEpoch) { connectingFollowers.wait(end - cur); cur = Time.currentElapsedTime(); } if (waitingForNewEpoch) { throw new InterruptedException("Timeout while waiting for epoch from quorum"); } } return epoch; } }
到此,相信大家對“zk中l(wèi)eader和follower啟動時信息交互分析”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!