更新時間:2022-07-19 來源:黑馬程序員 瀏覽量:
Zookeeper對外提供一個類似于文件系統(tǒng)的層次化的數(shù)據(jù)存儲服務,為了保證整個Zookeeper集群的容錯性和高性能,每一個Zookeeper集群都是由多臺服務器節(jié)點(Server)組成,這些節(jié)點通過復制保證各個服務器節(jié)點之間的數(shù)據(jù)一致。只要這些服務器節(jié)點過半數(shù)可用,那么整個Zookeeper集群就可用。下面我們來學習Zookeeper的集群架構,如圖5-1所示。
從圖5-1可以看出,Zookeeper集群是一個主從集群,它一般是由一個Leader(領導者)和多個Follower(跟隨者)組成。此外,針對訪問量比較大的Zookeeper集群,還可新增Observer(觀察者)。Zookeeper集群中的三種角色各司其職,共同完成分布式協(xié)調服務。下面我們針對Zookeeper集群中的三種角色進行簡單介紹。
圖5-1 Zookeeper集群架構圖
1.Leader
它是Zookeeper集群工作的核心,也是事務性請求(寫操作)的唯一調度和處理者,它保證集群事務處理的順序性,同時負責進行投票的發(fā)起和決議,以及更新系統(tǒng)狀態(tài)。
2.Follower
它負責處理客戶端的非事務(讀操作)請求,如果接收到客戶端發(fā)來的事務性請求,則會轉發(fā)給Leader,讓Leader進行處理,同時還負責在Leader選舉過程中參與投票。
3.Observer
它負責觀察Zookeeper集群的最新狀態(tài)的變化,并且將這些狀態(tài)進行同步。對于非事務性請求可以進行獨立處理;對于事務性請求,則會轉發(fā)給Leader服務器進行處理。它不會參與任何形式的投票,只提供非事務性的服務,通常用于在不影響集群事務處理能力的前提下,提升集群的非事務處理能力(提高集群讀的能力,也降低了集群選主的復雜程度)。