教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Zookeeper分布式系統(tǒng)的集群架構(gòu)介紹

更新時(shí)間:2020年11月03日14時(shí)06分 來源:傳智播客 瀏覽次數(shù):

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

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

圖1 Zookeeper集群架構(gòu)圖

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

1.Leader

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

2.Follower

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

3.Observer

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


猜你喜歡:

什么是Scala?Scala發(fā)展歷程簡介

什么是Sqoop,Sqoop在開發(fā)中起到什么作用?

傳智播客大數(shù)據(jù)培訓(xùn)課程


0 分享到:
和我們在線交談!