ZooKeeper 是 Apache 軟件基金會(huì)的一個(gè)軟件項(xiàng)目,它為大型分布式計(jì)算提供開源的分布式配置服務(wù)、同步服務(wù)和命名注冊(cè)。
ZooKeeper 的架構(gòu)通過冗余服務(wù)實(shí)現(xiàn)高可用性。
Zookeeper 的設(shè)計(jì)目標(biāo)是將那些復(fù)雜且容易出錯(cuò)的分布式一致性服務(wù)封裝起來,構(gòu)成一個(gè)高效可靠的原語集,并以一系列簡單易用的接口提供給用戶使用。
一個(gè)典型的分布式數(shù)據(jù)一致性的解決方案,分布式應(yīng)用程序可以基于它實(shí)現(xiàn)諸如數(shù)據(jù)發(fā)布/訂閱、負(fù)載均衡、命名服務(wù)、分布式協(xié)調(diào)/通知、集群管理、Master 選舉、分布式鎖和分布式隊(duì)列等功能。
誰適合閱讀本教程?
本教程是為專業(yè)的程序開發(fā)人員,通過本教程你可以一步一步了解 zookeeper 的應(yīng)用。
zookeeper 數(shù)據(jù)結(jié)構(gòu)
zookeeper 提供的名稱空間非常類似于標(biāo)準(zhǔn)文件系統(tǒng),key-value 的形式存儲(chǔ)。名稱 key 由斜線?/?分割的一系列路徑元素,zookeeper 名稱空間中的每個(gè)節(jié)點(diǎn)都是由一個(gè)路徑標(biāo)識(shí)。
相關(guān) CAP 理論
CAP 理論指出對(duì)于一個(gè)分布式計(jì)算系統(tǒng)來說,不可能同時(shí)滿足以下三點(diǎn):
- 一致性:在分布式環(huán)境中,一致性是指數(shù)據(jù)在多個(gè)副本之間是否能夠保持一致的特性,等同于所有節(jié)點(diǎn)訪問同一份最新的數(shù)據(jù)副本。在一致性的需求下,當(dāng)一個(gè)系統(tǒng)在數(shù)據(jù)一致的狀態(tài)下執(zhí)行更新操作后,應(yīng)該保證系統(tǒng)的數(shù)據(jù)仍然處于一致的狀態(tài)。
-
可用性:每次請(qǐng)求都能獲取到正確的響應(yīng),但是不保證獲取的數(shù)據(jù)為最新數(shù)據(jù)。
-
分區(qū)容錯(cuò)性:分布式系統(tǒng)在遇到任何網(wǎng)絡(luò)分區(qū)故障的時(shí)候,仍然需要能夠保證對(duì)外提供滿足一致性和可用性的服務(wù),除非是整個(gè)網(wǎng)絡(luò)環(huán)境都發(fā)生了故障。
一個(gè)分布式系統(tǒng)最多只能同時(shí)滿足一致性(Consistency)、可用性(Availability)和分區(qū)容錯(cuò)性(Partition tolerance)這三項(xiàng)中的兩項(xiàng)。
在這三個(gè)基本需求中,最多只能同時(shí)滿足其中的兩項(xiàng),P 是必須的,因此只能在 CP 和 AP 中選擇,zookeeper 保證的是 CP,對(duì)比 spring cloud 系統(tǒng)中的注冊(cè)中心 eruka 實(shí)現(xiàn)的是 AP。
BASE 理論
BASE 是 Basically Available(基本可用)、Soft-state(軟狀態(tài)) 和 Eventually Consistent(最終一致性) 三個(gè)短語的縮寫。
-
基本可用:在分布式系統(tǒng)出現(xiàn)故障,允許損失部分可用性(服務(wù)降級(jí)、頁面降級(jí))。
-
軟狀態(tài):允許分布式系統(tǒng)出現(xiàn)中間狀態(tài)。而且中間狀態(tài)不影響系統(tǒng)的可用性。這里的中間狀態(tài)是指不同的 data replication(數(shù)據(jù)備份節(jié)點(diǎn))之間的數(shù)據(jù)更新可以出現(xiàn)延時(shí)的最終一致性。
- 最終一致性:data replications 經(jīng)過一段時(shí)間達(dá)到一致性。
BASE 理論是對(duì) CAP 中的一致性和可用性進(jìn)行一個(gè)權(quán)衡的結(jié)果,理論的核心思想就是:我們無法做到強(qiáng)一致,但每個(gè)應(yīng)用都可以根據(jù)自身的業(yè)務(wù)特點(diǎn),采用適當(dāng)?shù)姆绞絹硎瓜到y(tǒng)達(dá)到最終一致性。
相關(guān)資源
希望你也學(xué)會(huì)了,更多編程源碼模板請(qǐng)來二當(dāng)家的素材網(wǎng):https://www.erdangjiade.com文章來源:http://www.zghlxwxcb.cn/news/detail-834295.html
zookeeper 官網(wǎng):Apache ZooKeeper文章來源地址http://www.zghlxwxcb.cn/news/detail-834295.html
到了這里,關(guān)于1.0 Zookeeper 分布式配置服務(wù)教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!