什么是Zookeeper?


概述

        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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM