概述
Zookeeper是一個開源的分布式的,為分布式應用提供協調服務的Apache項目。
Zookeeper從設計模式角度來理解:是一個基於觀察者模式設計的分布式服務管理框架,它負責存儲和管理大家都關心的數據(數據量不能太大),然后接受觀察者的注冊,也就是客戶端可以去監聽我們在Zookeeper上存儲的數據。一旦這些數據的狀態發生變化,Zookeeper就將負責通知已經在Zookeeper上注冊的那些觀察者(客戶端)做出相應的反應,從而實現集群中類似Master/Slave管理模式
總之:Zookeeper = 文件系統 + 通知機制
特點
1)Zookeeper:一個領導者(leader),多個跟隨者(follower)組成的集群。
2)Leader負責進行投票的發起和決議,更新系統狀態
3)Follower用於接收客戶請求並向客戶端返回結果,在選舉Leader過程中參與投票
4)半數機制:集群中只要有半數以上節點存活,Zookeeper集群就能正常服務。
5)全局數據一致:每個server保存一份相同的數據副本,client無論連接到哪個server,數據都是一致的。
6)按更新請求順序進行,來自同一個client的更新請求按其發送順序依次執行。
7)數據更新原子性,一次數據更新要么成功,要么失敗。
8)實時性,在一定時間范圍內,client能讀到最新數據。
數據結構
ZooKeeper數據模型的結構與Unix文件系統很類似,其存儲結構是一個樹形結構,每個節點稱做一個ZNode。每一個znode默認能夠存儲1MB的數據,每個ZNode都可以通過其路徑唯一標識
應用場景
提供的服務包括:統一命名服務、統一配置管理、統一集群管理、服務器節點動態上下線、軟負載均衡等
統一命名服務
統一配置管理
統一集群管理
服務器動態上下線
安裝
關於Zookeeper的安裝可以參考我的另一篇博文:https://blog.csdn.net/zyd_994264926326/article/details/119799311?spm=1001.2014.3001.5501