分布式協(xié)調(diào)服務(wù)ZooKeeper是怎么樣的,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)是專業(yè)的涼州網(wǎng)站建設(shè)公司,涼州接單;提供做網(wǎng)站、網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行涼州網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
分布式協(xié)調(diào)服務(wù)是分布式應(yīng)用中不可缺少的,通常擔(dān)任協(xié)調(diào)角色,比如leader選舉、負(fù)載均衡、服務(wù)發(fā)現(xiàn)、分布式隊(duì)列和分布式鎖
Zookeeper數(shù)據(jù)模型:
一、層級(jí)命名空間
1、data:每個(gè)znode擁有一個(gè)數(shù)據(jù)域,記錄用戶數(shù)據(jù),該節(jié)點(diǎn)的數(shù)據(jù)類型為字節(jié)數(shù)組;
2、type:zonde類型,具體分為persistent(持久化節(jié)點(diǎn))、ephemeral(臨時(shí)節(jié)點(diǎn))、persistent_sequential(在持久化節(jié)點(diǎn)后面追加一個(gè)增量的唯一數(shù)字)、ephemeral_sequential(在臨時(shí)節(jié)點(diǎn)后面追加一個(gè)增量的唯一數(shù)字);
3、version:znode中數(shù)據(jù)的版本號(hào),每次數(shù)據(jù)更新版本都會(huì)加一;
4、children:znode可以包括多個(gè)子節(jié)點(diǎn);
5、ACL:znode訪問(wèn)控制列表,用戶可以設(shè)置每個(gè)znode的訪問(wèn)用戶列表,以保證znode被安全訪問(wèn)。
二、Watcher:watcher是zookeeper提供的發(fā)布/訂閱機(jī)制,用戶可在某個(gè)znode上注冊(cè)watcher以監(jiān)聽(tīng)它的變化,一旦znode被刪除或者更新,zookeeper將以事件的方式將變化內(nèi)容發(fā)送給監(jiān)聽(tīng)者,需要注意,wacther一旦觸發(fā)后就會(huì)刪除,除非用戶再次注冊(cè)該watcher。
三、Session:是客戶端與zookeeper通信通道,同一個(gè)session中的消息是有序的,Session具有容錯(cuò)性,如何有服務(wù)器宕機(jī),客戶端會(huì)自動(dòng)切換到其它活著服務(wù)上。
ZooKeeper基本架構(gòu)
讀路徑、寫(xiě)路徑、作為數(shù)據(jù)中心間的橋梁、作為消息總線。
ZooKeeper提供了Java和C語(yǔ)言兩種API
ZooKeeper應(yīng)用案例:
leader選舉(eg:Hbase、YARN、HDFS)、分布式隊(duì)列(幫忙Master節(jié)點(diǎn)維護(hù)作業(yè)及worker信息),負(fù)載均衡:Kafka是場(chǎng)景,Broker和Customer主要在Zookeeper中寫(xiě)入信息,eg:Broker節(jié)點(diǎn)注冊(cè)信息、Consumer注冊(cè)信息、Consumer Offset追蹤信息。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。