您好,登錄后才能下訂單哦!
它是一個為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等
1.命名服務(wù) 2.配置管理 3.集群管理 4.分布式鎖 5.隊列管理
Client-Server模型:用于對分布式協(xié)調(diào)系統(tǒng)中的對象提供協(xié)調(diào)服務(wù);
Peer-to-Peer模型:用于在zookeeper集群內(nèi)交互數(shù)據(jù);
這種混合的體系結(jié)構(gòu),讓zookeeper既保持客戶端的簡單化,又能夠在集群內(nèi)部保持一個良好的高可用機(jī)制;
zookeeper的兩種運(yùn)行模式:standalone 和 quorum
代表zookeeper由一個單一節(jié)點構(gòu)成,它的數(shù)據(jù)并不需要再多個節(jié)點之間復(fù)制;
該模式主要多用于生產(chǎn)環(huán)境,zookeeper有多個節(jié)點后構(gòu)成一個集群,通過zookeeper的Leader選舉、集群節(jié)點間的數(shù)據(jù)同步有關(guān);
當(dāng)才用quorum模式時,它的基本運(yùn)轉(zhuǎn)流程是:
① 選舉
Leader
② 同步數(shù)據(jù)
③ 選舉
Leader
過程中算法有很多,但要達(dá)到的選舉標(biāo)準(zhǔn)是一致的;④ Leader要具有最高的zxid
⑤ 集群中大多數(shù)的機(jī)器得到相應(yīng)并
follow
選出的Leader
說明:
對于用戶的讀操作,zookeeper集群中的所有節(jié)點都可接收處理; 對于用戶的寫操作,zookeeper將它作為事務(wù)進(jìn)行處理,并只有Leader才能發(fā)起事務(wù);在每次提交之前,修改的數(shù)據(jù)要在集群中同步;
zookeeper是通過集中性的C/S架構(gòu)服務(wù)于客戶端的,采用的是點對點的Pair-Pair架構(gòu)在各節(jié)點間進(jìn)行同步數(shù)據(jù),zookeeper內(nèi)部的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型采用了精簡的方式提供給用戶使用
在數(shù)據(jù)結(jié)構(gòu)上,zookeeper采用的是樹形結(jié)構(gòu);樹種的節(jié)點被稱為znode
,在整棵樹種有著清晰的父子層次關(guān)系;
zookeeper對數(shù)據(jù)的修改都當(dāng)做一次事務(wù)來看待,每次的事務(wù)動作都是原子操作,并分配一個唯一的zxid(zookeeper transacation id);
在每一個znode中都記錄了與之相關(guān)的zxid
;znode除了有效載荷數(shù)據(jù),還包括如下屬性:
czxid:引發(fā)當(dāng)前znode改變的zxid
mzxid:當(dāng)前znode上一次修改前的zxid
ctime:對znode事務(wù)操作所花費(fèi)的時間,單位是毫秒
mtime:操作上一次znode事務(wù)所花費(fèi)的時間,單位是毫秒
version:關(guān)聯(lián)到zxid,znode自身版本屬性,當(dāng)前znode修改的次數(shù)
cversion:znode子節(jié)點的修改次數(shù)
aversion:znode ACL(訪問列表)的修改測試
ephemeralOwner:記錄客戶端會話ID,如果是持久型znode 則為0
dataLength:znode數(shù)據(jù)字段的長度
numChildren:znode子節(jié)點的個數(shù)
znode在創(chuàng)建的時候可以指定模式,可以用不同的模式組合成需要的分布式場景功能;
一個znode節(jié)點可以是持久的(Persistent),也可以是短暫的(Ephemera);
只有收到刪除命令后才能被刪除;
用于保存結(jié)構(gòu)信息;
會在客戶端與服務(wù)端之間保存的會話中斷時自動刪除;
也能像持久型znode一樣被命令刪除;
客戶端與服務(wù)端之間一旦建立連接,則會有定期的心跳檢查以保證這個長連接的存活
創(chuàng)建znode時會自動分配一個唯一的遞增的整數(shù),這個正向序列可以作為路徑名稱的一部分;
例如:客戶端創(chuàng)建了一個序列znode為/woker/work-
,則zookeeper會自動分配一個序列數(shù),如果是當(dāng)前znode下的第一個子節(jié)點則分配為1,路徑變?yōu)?code >/worker/work-1;序列節(jié)點最大的作用就是生成唯一名稱節(jié)點,同時能夠提供節(jié)點間的創(chuàng)建次序信息
zookeeper的ACL建立在認(rèn)證與授權(quán)機(jī)制下,包含以下認(rèn)證方式:
1. digest:通過用戶名/密碼對客戶端進(jìn)行認(rèn)證; 2. sasl: 支持客戶端通過Kerberos認(rèn)證; 3. ip: 通過IP地址對客戶端進(jìn)行認(rèn)證;
在授權(quán)方面,ACL可以對znode的創(chuàng)建(子節(jié)點)、讀取、寫入、刪除及管理(設(shè)置ACL)進(jìn)行控制
未完待續(xù)...
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。