2023學(xué)年完整公開課版Zookeeper概述_第1頁(yè)
2023學(xué)年完整公開課版Zookeeper概述_第2頁(yè)
2023學(xué)年完整公開課版Zookeeper概述_第3頁(yè)
2023學(xué)年完整公開課版Zookeeper概述_第4頁(yè)
2023學(xué)年完整公開課版Zookeeper概述_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Zookeeper概述2學(xué)習(xí)任務(wù)Zookeeper數(shù)據(jù)模型Zookeeper工作原理Zookeeper常見操作3知識(shí)目標(biāo)01能力目標(biāo)02學(xué)習(xí)目標(biāo)理解Zookeeper數(shù)據(jù)模型理解Zookeeper工作原理了解Zookeeper常見操作理解Zookeeper數(shù)據(jù)模型理解Zookeeper工作原理了解Zookeeper常見操作4目錄01Zookeeper數(shù)據(jù)模型02Zookeeper工作原理03Zookeeper常見操作5Zookeeper數(shù)據(jù)模型ZNode(數(shù)據(jù)節(jié)點(diǎn))是ZooKeeper中數(shù)據(jù)的最小單元,每個(gè)ZNode上都可以保存數(shù)據(jù),同時(shí)還是可以有子節(jié)點(diǎn)(這就像樹結(jié)構(gòu)一樣,如下圖所示)??梢钥闯?,節(jié)點(diǎn)路徑標(biāo)識(shí)方式和Unix文件系統(tǒng)路徑非常相似,都是由一系列使用斜杠"/"進(jìn)行分割的路徑表示,開發(fā)人員可以向這個(gè)節(jié)點(diǎn)中寫人數(shù)據(jù),也可以在節(jié)點(diǎn)下面創(chuàng)建子節(jié)點(diǎn)。6Zookeeper數(shù)據(jù)模型-znode的結(jié)構(gòu)每個(gè)ZNode由2部分組成:stat:狀態(tài)信息data:數(shù)據(jù)內(nèi)容7Zookeeper數(shù)據(jù)模型-znode的結(jié)構(gòu)這些狀態(tài)信息其實(shí)就是Stat對(duì)象的格式化輸出。Stat類中包含了一個(gè)數(shù)據(jù)節(jié)點(diǎn)的所有狀態(tài)信息的字段,包括事務(wù)ID、版本信息和子節(jié)點(diǎn)個(gè)數(shù)等,如圖所示(圖源:《從Paxos到Zookeeper分布式一致性原理與實(shí)踐》)8Zookeeper工作原理Zookeeper的核心(1)Zookeeper的核心是原子廣播,這個(gè)機(jī)制保證了各個(gè)server之間的同步。實(shí)現(xiàn)這個(gè)機(jī)制的協(xié)議叫做Zab協(xié)議。Zab協(xié)議有兩種模式,它們分別是恢復(fù)模式和廣播模式。當(dāng)服務(wù)啟動(dòng)或者在領(lǐng)導(dǎo)者崩潰后,Zab就進(jìn)入了恢復(fù)模式,當(dāng)領(lǐng)導(dǎo)者被選舉出來,且大多數(shù)server的完成了和leader的狀態(tài)同步以后,恢復(fù)模式就結(jié)束了。狀態(tài)同步保證了leader和server具有相同的系統(tǒng)狀態(tài)。9Zookeeper工作原理Zookeeper的核心(2)一旦leader已經(jīng)和多數(shù)的follower進(jìn)行了狀態(tài)同步后,他就可以開始廣播消息了,即進(jìn)入廣播狀態(tài)。這時(shí)候當(dāng)一個(gè)server加入Zookeeper服務(wù)中,它會(huì)在恢復(fù)模式下啟動(dòng),發(fā)現(xiàn)leader,并和leader進(jìn)行狀態(tài)同步。待到同步結(jié)束,它也參與消息廣播。Zookeeper服務(wù)一直維持在Broadcast狀態(tài),直到leader崩潰了或者leader失去了大部分的followers支持。10Zookeeper工作原理Zookeeper的核心(3)廣播模式需要保證proposal被按順序處理,因此zk采用了遞增的事務(wù)id號(hào)(zxid)來保證。所有的提議(proposal)都在被提出的時(shí)候加上了zxid。實(shí)現(xiàn)中zxid是一個(gè)64位的數(shù)字,它高32位是epoch用來標(biāo)識(shí)leader關(guān)系是否改變,每次一個(gè)leader被選出來,它都會(huì)有一個(gè)新的epoch。低32位是個(gè)遞增計(jì)數(shù)。11Zookeeper工作原理Zookeeper的核心(4)當(dāng)leader崩潰或者leader失去大多數(shù)的follower,這時(shí)候zk進(jìn)入恢復(fù)模式,恢復(fù)模式需要重新選舉出一個(gè)新的leader,讓所有的server都恢復(fù)到一個(gè)正確的狀態(tài)。Zookeeper的節(jié)點(diǎn)是可以被監(jiān)控,目錄中存儲(chǔ)數(shù)據(jù)的修改,子節(jié)點(diǎn)目錄的變化,都可以觸發(fā)事件并通知監(jiān)聽的客戶端,這是Zookeeper重要的特性,通過此特性可以實(shí)現(xiàn)的功能有配置的集中管理,集群管理,分布式鎖等。監(jiān)聽機(jī)制官方說明為:一個(gè)監(jiān)聽事件是一個(gè)一次性的監(jiān)聽器,當(dāng)被設(shè)置了監(jiān)聽的數(shù)據(jù)發(fā)生變化時(shí),服務(wù)器就會(huì)將這個(gè)改變發(fā)送給負(fù)責(zé)設(shè)置Watch的客戶端。12Zookeeper常見操作連接zookeeper服務(wù)進(jìn)入安裝ZooKeeper文件夾的bin目錄下執(zhí)行下面的命令連接ZooKeeper服務(wù)(Linux環(huán)境下,連接之前首選要確定你的ZooKeeper服務(wù)已經(jīng)啟動(dòng)成功)./zkCli.sh-server127.0.0.1:218113Zookeeper常見操作hel

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論