摘要:只允許有一個主進(jìn)程接受客戶事務(wù)請求并處理,收到請求后,將其轉(zhuǎn)化為事務(wù)。并開啟新一輪選舉,新的會和過半的進(jìn)行同步數(shù)據(jù)。同步結(jié)束時,切換為消息廣播模式。若非節(jié)點(diǎn)收到客戶請求,則該節(jié)點(diǎn)會將該請求發(fā)送到服務(wù)器上。
zookeeper
它為分布式應(yīng)用提供了高效可靠的分布式協(xié)調(diào)服務(wù)。
實(shí)現(xiàn)依賴于 ZAB協(xié)議,實(shí)現(xiàn)了主備模式架構(gòu)用來保持集群中數(shù)據(jù)的一致性
Zookeeper 將所有數(shù)據(jù)存放在 內(nèi)存中
應(yīng)用場景:更適合讀操作為主
角色:leader follower observer
leader 是通過選舉的一臺機(jī)器(提供讀寫功能)
follower 和 observer 提供讀功能,而observer 不參與選舉 和半寫成功策略(因此可以提升集群讀性能)
集群節(jié)點(diǎn)為奇數(shù)個
節(jié)點(diǎn)分為臨時節(jié)點(diǎn),持久節(jié)點(diǎn),順序節(jié)點(diǎn)。 每個節(jié)點(diǎn)都又 star 結(jié)構(gòu)
重要功能 :watch 功能
客戶端: zkclient curator
ZAB 協(xié)議為zookeeper 設(shè)計 支持崩潰恢復(fù)的消息廣播協(xié)議。
ZAB 只允許有一個主進(jìn)程接受客戶事務(wù)請求并處理 (leader),leader收到請求后,將其轉(zhuǎn)化為事務(wù)proposal。
leader 會為每個follower 創(chuàng)建一個隊(duì)列,將事務(wù)放入響應(yīng)隊(duì)列,保證事務(wù)順序。
之后再隊(duì)列中順序向其他節(jié)點(diǎn)廣播該提案,follower 收到后會將其以事務(wù)形式寫入到本地日志,并向leader 發(fā)送 Ack 反饋。
leader等待并收到超過一半的follower 響應(yīng)時向其他節(jié)點(diǎn)發(fā)送 commit 消息,同時 leader 提交提案
ZAB 兩種模式故障恢復(fù)模式
消息廣播
模式切換當(dāng)機(jī)器出現(xiàn)故障時,就進(jìn)入 故障恢復(fù)模式。并開啟新一輪選舉,新的leader 會和過半的 follower 進(jìn)行同步數(shù)據(jù)。同步結(jié)束時,切換為消息廣播模式。
例子: 當(dāng)一臺 遵循 ZAB 協(xié)議的服務(wù)器啟動后,若監(jiān)測到有 leader 在廣播消息后,自動切換為 恢復(fù)模式,同步數(shù)據(jù),之后再切換為消息廣播。
若 非leader 節(jié)點(diǎn) 收到 客戶請求,則該節(jié)點(diǎn) 會將該請求發(fā)送到 leader 服務(wù)器上。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/74658.html
摘要:協(xié)議是為分布式協(xié)調(diào)服務(wù)專門設(shè)計的一種支持崩潰恢復(fù)的一致性協(xié)議,這個機(jī)制保證了各個之間的同步。選主是協(xié)議中最為重要和復(fù)雜的過程。以實(shí)際效果而言,分區(qū)相當(dāng)于對通信的時限要求。參考官方文檔阿里巴巴為什么不用做服務(wù)發(fā)現(xiàn)定理的含義阮一峰 前言 同學(xué)們,在上一章中,我們主要講了Zookeeper兩種啟動模式以及具體如何搭建。本章內(nèi)容主要講的是集群相關(guān)的原理內(nèi)容,第一章可以當(dāng)做是Zookeeper原...
摘要:的設(shè)計目標(biāo)是將那些復(fù)雜且容易出錯的分布式一致性服務(wù)封裝起來,構(gòu)成一個高效可靠的原語集,并以一系列簡單易用的接口提供給用戶使用。具有不可分割性即原語的執(zhí)行必須是連續(xù)的,在執(zhí)行過程中不允許被中斷。 該文已加入開源文檔:JavaGuide(一份涵蓋大部分Java程序員所需要掌握的核心知識)。地址:https://github.com/Snailclimb... showImg(https:...
摘要:之后服務(wù)器等待其他服務(wù)器的反饋,一旦超過半數(shù)的服務(wù)器進(jìn)行了正確的反饋,那么就會再次向所有的服務(wù)器分發(fā)消息,要求其將前一個進(jìn)行提交。協(xié)議包括兩種基本的模式,分別是崩潰恢復(fù)和消息廣播。 前言 zookeeper本質(zhì)上就是一個分布式協(xié)調(diào)服務(wù),用來解決分布式一致性的問題。 本文適合有一定分布式基礎(chǔ)的讀者閱讀。什么叫相關(guān)的基礎(chǔ)呢?起碼你得知道系統(tǒng)架構(gòu)為何從集中式演變成了分布式,分布式有哪些優(yōu)點(diǎn)...
摘要:與此同時,小組也一同致力于項(xiàng)目,參與了很多動物命名的項(xiàng)目,其中有廣為人知的項(xiàng)目。主控服務(wù)器將所有更新操作序列化,利用協(xié)議將數(shù)據(jù)更新請求通知所有從屬服務(wù)器,保證更新操作。在術(shù)語下,節(jié)點(diǎn)被稱為。命名為的,由系統(tǒng)自動生成,用配額管理。 ZooKeeper 介紹 ZooKeeper(wiki,home,github) 是用于分布式應(yīng)用的開源的分布式協(xié)調(diào)服務(wù)。通過暴露簡單的原語,分布式應(yīng)用能在之...
摘要:當(dāng)已經(jīng)超過個心跳的時間也就是長度后服務(wù)器還沒有收到客戶端的返回信息那么表明這個客戶端連接失敗。 基礎(chǔ)篇 1、zookeeper是什么 Zookeeper,一種分布式應(yīng)用的協(xié)作服務(wù),是Google的Chubby一個開源的實(shí)現(xiàn),是Hadoop的分布式協(xié)調(diào)服務(wù),它包含一個簡單的原語集,應(yīng)用于分布式應(yīng)用的協(xié)作服務(wù),使得分布式應(yīng)用可以基于這些接口實(shí)現(xiàn)諸如同步、配置維護(hù)和分集群或者命名的服務(wù)。...
閱讀 1967·2021-11-22 15:29
閱讀 3268·2021-10-14 09:43
閱讀 1233·2021-10-08 10:22
閱讀 3354·2021-08-30 09:46
閱讀 1441·2019-08-30 15:55
閱讀 1936·2019-08-30 15:44
閱讀 859·2019-08-30 14:19
閱讀 1454·2019-08-30 13:13