更新時(shí)間:2021-05-11 來源:黑馬程序員 瀏覽量:
ZooKeeper 是一個(gè)開放源碼的分布式協(xié)調(diào)服務(wù),它是集群的管理者,監(jiān)視著集群中各個(gè)節(jié)點(diǎn)的狀態(tài)根據(jù)節(jié)點(diǎn)提交的反饋進(jìn)行下一步合理操作。最終,將簡(jiǎn)單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。
分布式應(yīng)用程序可以基于 Zookeeper 實(shí)現(xiàn)諸如數(shù)據(jù)發(fā)布/訂閱、負(fù)載均衡、命名服務(wù)、分布式協(xié)調(diào)/通知、集群管理、Master 選舉、分布式鎖和分布式隊(duì)列等功能。
Zookeeper 保證了如下分布式一致性特性:
(1)順序一致性
(2)原子性
(3)單一視圖
(4)可靠性
(5)實(shí)時(shí)性(最終一致性)
客戶端的讀請(qǐng)求可以被集群中的任意一臺(tái)機(jī)器處理,如果讀請(qǐng)求在節(jié)點(diǎn)上注冊(cè)了監(jiān)聽器,這個(gè)監(jiān)聽器也是由所連接的 zookeeper 機(jī)器來處理。對(duì)于寫請(qǐng)求,這些請(qǐng)求會(huì)同時(shí)發(fā)給其他 zookeeper 機(jī)器并且達(dá)成一致后,請(qǐng)求才會(huì)返回成功。因此,隨著 zookeeper 的集群機(jī)器增多,讀請(qǐng)求的吞吐會(huì)提高但是寫請(qǐng)求的吞吐會(huì)下降。
有序性是 zookeeper 中非常重要的一個(gè)特性,所有的更新都是全局有序的,每個(gè)更新都有一個(gè)唯一的時(shí)間戳,這個(gè)時(shí)間戳稱為 zxid(Zookeeper Transaction Id)。而讀請(qǐng)求只會(huì)相對(duì)于更新有序,也就是讀請(qǐng)求的返回結(jié)果中會(huì)帶有這個(gè)zookeeper 最新的 zxid。
ZooKeeper視頻教程3天通關(guān)[黑馬程序員]