首頁技術(shù)文章正文

Zookeeper集群中的三種角色簡單介紹

更新時間:2020-11-03 來源:黑馬程序員 瀏覽量:

    把復(fù)雜的東西簡單化,是不變的技術(shù)追求。在過去,很多大型系統(tǒng)依賴一個類似的系統(tǒng)來進(jìn)行分布式協(xié)調(diào),一旦運(yùn)行這個系統(tǒng)的服務(wù)器宕機(jī),那么整個分布式系統(tǒng)將無法正常運(yùn)行,為了解決這個問題,雅虎的開發(fā)人員就試圖開發(fā)一個通用的無單點(diǎn)問題的分布式協(xié)調(diào)框架,解決分布式集群中應(yīng)用系統(tǒng)的一致性問題,例如如何避免同時操作同一數(shù)據(jù)造成臟讀的問題等。

 Zookeeper對外提供一個類似于文件系統(tǒng)的層次化的數(shù)據(jù)存儲服務(wù),為了保證整個Zookeeper集群的容錯性和高性能,每一個Zookeeper集群都是由多臺服務(wù)器節(jié)點(diǎn)(Server)組成,這些節(jié)點(diǎn)通過復(fù)制保證各個服務(wù)器節(jié)點(diǎn)之間的數(shù)據(jù)一致。只要當(dāng)這些服務(wù)器節(jié)點(diǎn)過半數(shù)節(jié)點(diǎn)可用,那么整個Zookeeper集群就可用。下面我們來學(xué)習(xí)Zookeeper的集群架構(gòu),如圖1所示。

1604384026935_1.jpg
圖1 Zookeeper集群架構(gòu)圖

  從圖1我們可以看出,Zookeeper集群是一個主從集群,它一般是由一個Leader(領(lǐng)導(dǎo)者)和多個Follower(跟隨者)組成。此外,針對訪問量比較大的Zookeeper集群,還可新增Observer(觀察者)。Zookeeper集群中的三種角色各司其職,共同完成分布式協(xié)調(diào)服務(wù)。下面我們針對Zookeeper集群中的三種角色進(jìn)行簡單介紹。

  1.Leader

  它是Zookeeper集群工作的核心,也是事務(wù)性請求(寫操作)的唯一調(diào)度和處理者,它保證集群事務(wù)處理的順序性,同時負(fù)責(zé)進(jìn)行投票的發(fā)起和決議,以及更新系統(tǒng)狀態(tài)。

  2.Follower

  它負(fù)責(zé)處理客戶端的非事務(wù)(讀操作)請求,如果接收到客戶端發(fā)來的事務(wù)性請求,則會轉(zhuǎn)發(fā)給Leader,讓Leader進(jìn)行處理,同時還負(fù)責(zé)在Leader選舉過程中參與投票。

  3.Observer

  它負(fù)責(zé)觀察Zookeeper集群的最新狀態(tài)的變化,并且將這些狀態(tài)進(jìn)行同步。對于非事務(wù)性請求可以進(jìn)行獨(dú)立處理;對于事務(wù)性請求,則會轉(zhuǎn)發(fā)給Leader服務(wù)器進(jìn)行處理。它不會參與任何形式的投票,只提供非事務(wù)性的服務(wù),通常用于在不影響集群事務(wù)處理能力的前提下,提升集群的非事務(wù)處理能力(提高集群讀的能力,也降低了集群選主的復(fù)雜程度)。

猜你喜歡:

Windows系統(tǒng)中如何下載安裝Scala插件?

HBase分布式數(shù)據(jù)庫的特點(diǎn)是什么?HBase簡介

MapReduce是怎樣進(jìn)行計(jì)算的?

分享到:
在線咨詢 我要報(bào)名
和我們在線交談!