Zookeeper基本知識介紹

2021-10-06 01:37:02 字數 1581 閱讀 5677

1、什麼是zookeeper

zookeeper是乙個分布式開源框架,提供了協調分布式應用的基本服務,它向外部應用暴露一組通用服務——分布式同步(distributed synchronization)、命名服務(naming service)、集群維護(group maintenance)等,簡化分布式應用協調及其管理的難度,提供高效能的分布式服務。zookeeper本身可以以單機模式安裝執行,不過它的長處在於通過分布式zookeeper集群(乙個leader,多個follower),基於一定的策略來保證zookeeper集群的穩定性和可用性,從而實現分布式應用的可靠性。

1.1 zookeeper特性

1.2 zookeeper資料結構

節點型別

1.3 監聽通知機制

1.4 acl

zookeeper採用acl(access control lists)策略來進行許可權控制。zookeeper定義了如下5種許可權。

注意:create 和 delete 都是針對子節點的許可權控制。

1.5 分布式鎖

分布式鎖是控制分布式系統之間同步訪問共享資源的一種方式。

分布式鎖又分為排他鎖和共享鎖兩種。

排他鎖

排他鎖(exclusive locks,簡稱x鎖),又稱為寫鎖或獨佔鎖。

如果事務t1對資料物件o1加上了排他鎖,那麼在整個加鎖期間,只允許事務t1對o1進行讀取和更新操作,其他任何事務都不能在對這個資料物件進行任何型別的操作(不能再對該物件加鎖),直到t1釋放了排他鎖。

共享鎖

共享鎖(shared locks,簡稱s鎖),又稱為讀鎖。如果事務t1對資料物件o1加上了共享鎖,那麼t1只能對o1進行讀操作,其他事務也能同時對o1加共享鎖(不能是排他鎖),直到o1上的所有共享鎖都釋放後o1才能被加排他鎖。

1.6 zab協議

zookeeper atomic broadcast(zab,zookeeper原子廣播協議)作為其資料一致性的核心演算法,是一種特別為zookeeper設計的崩潰可恢復的原子廣播演算法。基於zab協議,zookeeper實現了一種主備模式(leader、follower)的系統架構來保持集群中各副本之間資料的一致性。

事務請求的處理方式:

所有事務請求必須由乙個全域性唯一的伺服器來協調處理,這樣的伺服器被稱為leader伺服器,而剩下的其他伺服器則成為follower伺服器。leader伺服器負責將乙個客戶端事務請求轉換成乙個事務proposal(提案)並將該proposal分發給集群中所有的follower伺服器。之後leader伺服器需要等待所有follower伺服器的反饋,一旦超過半數的follower伺服器進行了正確的反饋後,leader就會再次向所有的follower伺服器分發commit訊息,要求對剛才的proposal進行提交。

zookeeper (基本知識一)

zookeeper 是檔案系統 監聽通知機制 最重要的核心 客戶端監聽它關心的目錄節點,目錄節點變化之後通知客戶端 觀察者模式 三種角色 leader 責進行投票的發起和決議,更新系統狀態 follower 用於接受客戶端請求並想客戶端返回結果,在選主過程中參與投票 observer 可以接受客戶端...

redis基本知識介紹

redis相對memcache來說,支援了更多的資料型別,在使用場景上面無疑是更加的便捷 string 可以儲存任何形式的字串,內部實現結構有int,sds dynamisc string 當值為整型時,使用int結構存放,非整型時使用sds儲存 list 當list的節點小於配置 hash max...

執行緒程式設計基本知識介紹

執行緒程式設計基本知識介紹 執行緒程式設計基本知識介紹,常用執行緒函式列舉 與執行緒相關的函式可以分類歸結為以下幾個部分 1 執行緒管理函式,包括執行緒的建立,退出,函式為 pthread create,pthread join,pthread exit,pthread self,pthread c...