初識(shí)Zookeeper

Zookeeper簡介

????????>開源的針對大型分布式系統(tǒng)可靠協(xié)調(diào)系統(tǒng)

????????> 設(shè)計(jì)目標(biāo):將復(fù)雜且容易出錯(cuò)的分布式一致性服務(wù)封裝起來,構(gòu)成一個(gè)高效可靠的原語集,并以簡單易用的接口提供給用戶使用。

? ? ? ? >功能:發(fā)布/訂閱,分布式協(xié)調(diào)/通知,配置管理,集群管理,主從協(xié)調(diào),分布式鎖等。

Zookeeper特性:

????????最終一致性:保證最終數(shù)據(jù)能夠達(dá)到一致。(重要功能)

? ? ? ? 順序性:從同一個(gè)客戶端發(fā)起的事務(wù)請求,最終會(huì)嚴(yán)格地按照其發(fā)送順序被應(yīng)用到Zookeeper中。

????????可靠性:一旦服務(wù)器成功的應(yīng)用一個(gè)事務(wù),并完成了客戶端的響應(yīng),那么該服務(wù)所引起的服務(wù)端狀態(tài)變更將會(huì)被一直保留下去。

????????實(shí)時(shí)性:Zookeeper不能保證兩個(gè)客戶端能同時(shí)得到剛更新的數(shù)據(jù),如果需要最新數(shù)據(jù),應(yīng)該在讀數(shù)據(jù)之前調(diào)用sync()接口。

????????原子性:一次數(shù)據(jù)更新要么成功,要么失敗。

????????單一視圖:無論客戶端連接到哪個(gè)服務(wù)器,看到的數(shù)據(jù)模型都是一致的。

基本架構(gòu):


Zookeeper角色:

? ? ? ? Leader(領(lǐng)導(dǎo)者)

? ??????Follower(跟隨者)

? ??????Observer(觀察者)

選舉方式(分兩種)全新啟動(dòng)期和運(yùn)行期間

全新啟動(dòng)期:

運(yùn)行期間:(更正步驟2改為(3,123)

數(shù)據(jù)模型Znode

? ? ? ? Zookeeper特有數(shù)據(jù)節(jié)點(diǎn)Znode,視圖類似于linux的文件系統(tǒng),是系統(tǒng)中最小的數(shù)據(jù)單元。并且可以保存數(shù)據(jù),通過掛在子節(jié)點(diǎn)構(gòu)成數(shù)狀層次化空間

節(jié)點(diǎn)類型

? ? ? ? 節(jié)點(diǎn)有三種:

????????????????????????持久節(jié)點(diǎn) ? ? ? 臨時(shí)節(jié)點(diǎn) ? ? ?順序節(jié)點(diǎn)

? ? ? ? 組合節(jié)點(diǎn)類型:

? ? ? ? ? ? ? ??????????持久節(jié)點(diǎn)

????????????????????????持久順序節(jié)點(diǎn)

????????????????????????臨時(shí)節(jié)點(diǎn)

? ? ? ? ? ? ? ? ? ? ? ? 臨時(shí)順序節(jié)點(diǎn)

搭建中遇到的問題

? ? ? ? 1、軟連接創(chuàng)建之后使用ll查看存在閃爍情況,檢查路徑后使用rm移除錯(cuò)誤的連接重新創(chuàng)建解決問題。

? ? ? ? 2、創(chuàng)建完成后,在三臺(tái)機(jī)器上面啟動(dòng)zookeeper,使用status查看提示進(jìn)程未啟動(dòng),檢查了防火墻狀態(tài)。查看日志發(fā)現(xiàn)報(bào)錯(cuò)大意是myid=5的zookeeper并未啟動(dòng),原因是因?yàn)樵趜oo.cfg中寫入了5臺(tái)server。在所有機(jī)器的進(jìn)程都啟動(dòng)后,發(fā)現(xiàn)只有1,2,4,5能查看到當(dāng)前角色。進(jìn)入node03,查看啟動(dòng)日志,發(fā)現(xiàn)myid手誤打成了33,更正后重新啟動(dòng),所有節(jié)點(diǎn)都能正確查看到角色。

? ? ? ? ? ? 問題排除建議:檢查防火墻,檢查myid是否正確創(chuàng)建。遇到問題查看日志,里面或許存在蛛絲馬跡。

?未完待續(xù)....

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容