zk中l(wèi)eader和follower啟動時信息交互分析

本篇內容主要講解“zk中l(wèi)eader和follower啟動時信息交互分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“zk中l(wèi)eader和follower啟動時信息交互分析”吧!

創(chuàng)新互聯(lián)建站主要從事網(wǎng)頁設計、PC網(wǎng)站建設(電腦版網(wǎng)站建設)、wap網(wǎng)站建設(手機版網(wǎng)站建設)、成都響應式網(wǎng)站建設、程序開發(fā)、網(wǎng)站優(yōu)化、微網(wǎng)站、成都微信小程序等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設行業(yè)積累了豐富的網(wǎng)站制作、成都網(wǎng)站設計、網(wǎng)站設計、網(wǎng)絡營銷經(jīng)驗,集策劃、開發(fā)、設計、營銷、管理等多方位專業(yè)化運作于一體。

QuorumPeer中讀取節(jié)點狀態(tài)信息,不同狀態(tài)下設置不同角色

zk中l(wèi)eader和follower啟動時信息交互分析

1 Leader啟動Follower接收器LearnerCnxAcceptor

LearnerCnxAcceptor負責接收非leader連接請求,線程中創(chuàng)建LearnerHandler處理器

2 Learner發(fā)起和leader的連接

Follower.followLeader()

Observer.observeLeader()

3 leader啟動時會創(chuàng)建LearnerHandler

每個learnerHandler實例都對應一個leader和learner之間的連接,負責消息通信和

數(shù)據(jù)同步

4 向leader注冊

learner和leader連接后。會向leader注冊,即learner服務器基礎信息

LearnerInfo zxid,sid發(fā)送給leader服務器

5 leader 接收到learner信息 服務器算出最新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)站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

本文標題:zk中l(wèi)eader和follower啟動時信息交互分析
當前地址:http://muchs.cn/article24/pdhcce.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、用戶體驗、關鍵詞優(yōu)化、網(wǎng)頁設計公司服務器托管App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設