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