更新時間:2017-09-01 來源:黑馬程序員云計算大數(shù)據(jù)培訓學院 瀏覽量:
2-1體系架構(gòu)
ZooKeeper的體系架構(gòu)如下圖所示:
客戶端可以連接到每個Server,每個Server的數(shù)據(jù)完全相同,每個Follower都和Leader有連接,接受Leader的數(shù)據(jù)更新操作,Server記錄事務日志和快照到持久存儲;過半數(shù)Server可用,整體服務就可用。Leader只有一個,宕機后會重新選出一個Leader。
2-2 ZooKeeper基本特性
強一致性:Client不論連接到哪個Server,展示給它的都是同一個視圖,這是ZooKeeper最重要的功能。
可靠性:具有簡單、健壯、良好的性能,如果消息Message被一臺服務器接受,那么它將被所有的服務器接受。
實時性:ZooKeeper保證客戶端在一個時間間隔范圍內(nèi)獲得服務器的更新信息,或者服務器失效的信息??紤]到網(wǎng)絡(luò)延時等原因,在需要最新數(shù)據(jù)時,應該在讀數(shù)據(jù)之前調(diào)用sync實現(xiàn)。
等待無關(guān)(wait-free):慢的或者失效的Client不得干預快速的Client的請求,使得每個Client都能有效的等待。
原子性:更新只能成功或者失敗,沒有中間狀態(tài)。
順序性:包括全局有序和偏序兩種。
2-3 ZooKeeper數(shù)據(jù)模型
ZooKeeper的數(shù)據(jù)模型基于樹型結(jié)構(gòu)的命名空間,與文件系統(tǒng)類似,如下所示:
該數(shù)據(jù)模型有如下幾個特點:
該數(shù)據(jù)模型是分布式的,數(shù)據(jù)節(jié)點被稱為znode,客戶端可以連接到每個Server,每個Server的數(shù)據(jù)完全相同;
znode可以是臨時節(jié)點也可以是持久性的。對應臨時節(jié)點,一旦創(chuàng)建znode的客戶端與服務器失去聯(lián)系,這個 znode 也將自動刪除,ZooKeeper 的客戶端和服務器通信采用長連接方式,每個客戶端和服務器通過心跳來保持連接,這個連接狀態(tài)稱為 session,如果 znode 是臨時節(jié)點,這個session 失效,znode 也就刪除了。
znode可以被監(jiān)控,包括這個目錄節(jié)點中存儲的數(shù)據(jù)的修改,子節(jié)點目錄的變化等,一旦變化可以通知設(shè)置監(jiān)控的客戶端,這個是 ZooKeeper 的核心特性,ZooKeeper 的很多功能都是基于這個特性實現(xiàn)的,通過這個特性可以實現(xiàn)的功能包括配置的集中管理,集群管理,分布式鎖等。
【AI設(shè)計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個工作日,就業(yè)率已達到94.55%,班均薪資20763元
2025-09-19【AI智能應用開發(fā)-Java】畢業(yè)當天offer率91%,薪資1W+占比54.2%,班級均薪12k+
2025-09-19云計算大數(shù)據(jù)培訓之Hadoop組件:zookeeper(1)
2017-09-01云計算大數(shù)據(jù)培訓之Spark-Streaming的基本原理以及預寫日志機制和checkpoint(3)
2017-09-01云計算大數(shù)據(jù)培訓之Spark-Streaming的基本原理以及預寫日志機制和checkpoint(2)
2017-09-01云計算大數(shù)據(jù)培訓之Spark-Streaming的基本原理以及預寫日志機制和checkpoint(1)
2017-09-01云計算大數(shù)據(jù)培訓之10個常見誤解:算法即預言家、大數(shù)據(jù)必干凈(下)
2017-08-31云計算大數(shù)據(jù)培訓之10個常見誤解:算法即預言家、大數(shù)據(jù)必干凈(上)
2017-08-31