Zookepper總結(jié)

ZooKeeper shell

1.5.1客戶端連接

運行?zkCli.sh?-server ip?進(jìn)入命令行工具类垦。

輸入help蚤认,輸出zk shell提示

1.5.2酿傍、shell 基本操作

創(chuàng)建節(jié)點

create[-s] [-e]pathdata acl

其中,-s或**-e分別指定節(jié)點特性**氯析,順序或臨時節(jié)點掩缓,若不指定遵岩,則表示持久節(jié)點尘执。

讀取節(jié)點

ls path[watch]get path[watch]ls2 path[watch]

**更新節(jié)點 **

setpathdata

刪除節(jié)點

deletepathrmrpath

===================================================

1.6、ZooKeeper 數(shù)據(jù)模型

ZooKeeper 的數(shù)據(jù)模型表悬,采用樹形層次結(jié)構(gòu)蟆沫,ZooKeeper 樹中的每個節(jié)點被稱為— Znode温治。

Znode 節(jié)點,既可以存數(shù)據(jù)舟山,又可以有子節(jié)點累盗。

只要znode的路徑是一樣的,不管這個znode在哪臺機(jī)器上劫窒,znode上的數(shù)據(jù)都是一模一樣的主巍。

Znode 存儲數(shù)據(jù)大小有限制挪凑。ZooKeeper的每個Znode的數(shù)據(jù)大小至多1M,當(dāng)時常規(guī)使用中應(yīng)該遠(yuǎn)小于此值搞旭。

1.6.2肄渗、節(jié)點類型

Znode有兩種咬最,分別為臨時節(jié)點永久節(jié)點

臨時節(jié)點:?該節(jié)點的生命周期依賴于創(chuàng)建它們的會話惑申。一旦會話結(jié)束圈驼,臨時節(jié)點將被自動刪除望几,當(dāng)然可以也可以手動刪除。臨時節(jié)點不允許擁有子節(jié)點衙伶。

永久節(jié)點:?該節(jié)點的生命周期不依賴于會話害碾,并且只有在客戶端顯示執(zhí)行刪除操作的時候慌随,他們才能被刪除阁猜。

Znode還有一個序列化的特性,如果創(chuàng)建的時候指定的話黄刚,該Znode的名字后面會自動追加一個不斷增加的序列號民效。序列號對于此節(jié)點的父節(jié)點來說是唯一的,這樣便會記錄每個子節(jié)點創(chuàng)建的先后順序业扒。

======================================================

1.7程储、ZooKeeper Watcher

ZooKeeper 中臂寝,引入了Watcher機(jī)制來實現(xiàn)通知功能咆贬。 ZooKeeper允許客戶端向服務(wù)端注冊一個Watcher監(jiān)聽,當(dāng)服務(wù)端的一些事件觸發(fā)了這個Watcher集嵌,那么服務(wù)器就會向客戶端發(fā)送一個事件來實現(xiàn)分布式的通知功能御毅。

觸發(fā)事件種類很多端蛆,如:節(jié)點創(chuàng)建,節(jié)點刪除嫌拣,節(jié)點改變呆躲,子節(jié)點改變等插掂。

**1.7.1腥例、Watch 機(jī)制特點 **?一次性觸發(fā)?事件發(fā)生觸發(fā)監(jiān)聽燎竖,一個watcher event就會被發(fā)送到設(shè)置監(jiān)聽的客戶端要销,這種效果是一次性的疏咐,后續(xù)再次發(fā)生同樣的事件,不會再次觸發(fā)茁肠。

事件封裝?ZooKeeper使用WatchedEvent對象來封裝服務(wù)端事件并傳遞缩举。 WatchedEvent包含了每一個事件的三個基本屬性: 通知狀態(tài)(keeperState)仅孩,事件類型(EventType)和節(jié)點路徑(path)

1.7.2、Shell 客戶端設(shè)置 watcher?設(shè)置節(jié)點數(shù)據(jù)變動監(jiān)聽:

get/aaa00000001 watch helloallen

通過另一個客戶端更改節(jié)點數(shù)據(jù):

set/aaa00000001hello22

此時設(shè)置監(jiān)聽的節(jié)點收到通知

==============================================

1.8京腥、典型應(yīng)用

1.8.1公浪、數(shù)據(jù)發(fā)布與訂閱(配置中心)?發(fā)布與訂閱模型船侧,即所謂的配置中心,顧名思義就是發(fā)布者將數(shù)據(jù)發(fā)布到ZK 節(jié)點上预柒,供訂閱者動態(tài)獲取數(shù)據(jù)宜鸯,實現(xiàn)配置信息的集中式管理和動態(tài)更新遮怜。

應(yīng)用在啟動的時候會主動來獲取一次配置,同時适贸,在節(jié)點上注冊一Watcher拜姿,這樣一來冯遂,以后每次配置有更新的時候,都會實時通知到訂閱的客戶端壁却,從來達(dá)到獲取最新配置信息的目的展东。

1.8.2炒俱、集群選主?在高可用的系統(tǒng)中,往往有一個active的節(jié)點砸王,多個standby節(jié)點峦阁。正常服務(wù)時,由active節(jié)點對外服務(wù)驹闰,standby節(jié)點作為備用節(jié)點撒会。當(dāng)active節(jié)點down機(jī)時茧彤,standby節(jié)點就接替active節(jié)點,繼續(xù)對外服務(wù)曾掂,從而實現(xiàn)了系統(tǒng)的高可用。

1.8.3溜歪、分布式鎖?所有客戶端都想要獲得執(zhí)行權(quán)许蓖,那就必須都去/locked節(jié)點下调衰,創(chuàng)建一個子節(jié)點(/locked/kkk)嚎莉,如果/locked/kkk節(jié)點已經(jīng)存在了趋箩,那么后面再創(chuàng)建是會創(chuàng)建不成功的加派,跟java的創(chuàng)建文件夾是一樣的道理,已存在則創(chuàng)建失敗竹勉。那么娄琉,最終只有一個客戶端可以成功創(chuàng)建這個節(jié)點,也就是只有一個客戶端獲得這把鎖(獲得唯一的執(zhí)行權(quán))车胡。當(dāng)客戶端應(yīng)用執(zhí)行完成后,只要刪除/locked/kkk節(jié)點丧慈,就相當(dāng)于釋放了鎖逃默,然后其他客戶端監(jiān)聽到節(jié)點被刪除簇搅,就能觸發(fā)事件,又開始搶著創(chuàng)建鎖節(jié)點了吟税。

1.9姿现、選舉機(jī)制?zookeeper默認(rèn)的算法是FastLeaderElection备典,采用投票數(shù)大于半數(shù)則勝出的邏輯。

假設(shè)目前有 5 臺服務(wù)器提佣,每臺服務(wù)器均沒有數(shù)據(jù),它們的編號分別1,2,3,4,5,按編號依次啟動潮针,它們的選舉過程如下:

服務(wù)器1啟動然低,給自己投票务唐,然后發(fā)投票信息,由于其它機(jī)器還沒有啟動所以它收不到反饋信息吨灭,服務(wù)器1的狀態(tài)一直屬于Looking刑巧。

服務(wù)器2啟動,給自己投票吠冤,同時與之前啟動的服務(wù)器1交換結(jié)果,由于服務(wù)器2的編號大所以服務(wù)器2勝出拯辙,但此時投票數(shù)沒有大于半數(shù)涯保,所以兩個服務(wù)器的狀態(tài)依然是LOOKING周伦。

服務(wù)器3啟動,給自己投票专挪,同時與之前啟動的服務(wù)器1,2交換信息,由于服務(wù)器3的編號最大所以服務(wù)器3勝出困肩,此時投票數(shù)正好大于半數(shù)脆侮,所以服務(wù)器3成為領(lǐng)導(dǎo)者靖避,服務(wù)器1,2成為小弟比默。

服務(wù)器4啟動命咐,給自己投票醋奠,同時與之前啟動的服務(wù)器1,2,3交換信息伊佃,盡管服務(wù)器4的編號大航揉,但之前服務(wù)器3已經(jīng)勝出,所以服務(wù)器4只能成為小弟议薪。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末斯议,一起剝皮案震驚了整個濱河市醇锚,隨后出現(xiàn)的幾起案子搂抒,更是在濱河造成了極大的恐慌,老刑警劉巖焰雕,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異爵赵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)烁峭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門约郁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鬓梅,“玉大人,你說我怎么就攤上這事绽快。” “怎么了续担?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵秫筏,是天一觀的道長。 經(jīng)常有香客問我这敬,道長,這世上最難降的妖魔是什么阳掐? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任缭保,我火速辦了婚禮艺骂,結(jié)果婚禮上隆夯,老公的妹妹穿的比我還像新娘钳恕。我一直安慰自己,他們只是感情好蹄衷,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布忧额。 她就那樣靜靜地躺著,像睡著了一般愧口。 火紅的嫁衣襯著肌膚如雪睦番。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天耍属,我揣著相機(jī)與錄音托嚣,去河邊找鬼大咱。 笑死,一個胖子當(dāng)著我的面吹牛注益,可吹牛的內(nèi)容都是我干的碴巾。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼啤月,長吁一口氣:“原來是場噩夢啊……” “哼浙垫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起辙售,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤士八,失蹤者是張志新(化名)和其女友劉穎婚度,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出倍奢,到底是詐尸還是另有隱情余指,我是刑警寧澤碉碉,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布靠粪,位于F島的核電站昔善,受9級特大地震影響君仆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一硫眯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧择葡,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刊头。三九已至弦讽,卻和暖如春某宪,著一層夾襖步出監(jiān)牢的瞬間兴喂,已是汗流浹背酱酬。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工陨界, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留俏扩,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像盯桦,于是被迫代替她去往敵國和親略号。 傳聞我的和親對象是個殘疾皇子诫舅,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

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

  • 一、ZooKeeper的背景 1.1 認(rèn)識ZooKeeper ZooKeeper---譯名為“動物園管理員”。動物...
    algernoon閱讀 9,056評論 1 106
  • 本文將從系統(tǒng)模型、序列化與協(xié)議、客戶端工作原理、會話、服務(wù)端工作原理以及數(shù)據(jù)存儲等方面來揭示ZooKeeper的技...
    端木軒閱讀 3,790評論 0 42
  • 【簡介】zookeeper是為分布式應(yīng)用所設(shè)計的高可用、高性能且一致的開源協(xié)調(diào)服務(wù),是大數(shù)據(jù)分布式集群的基礎(chǔ)組件仗哨,...
    伍柒大人的三言兩語閱讀 2,426評論 1 16
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理雏节,服務(wù)發(fā)現(xiàn)寥粹,斷路器,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • 當(dāng)定好票時,我有些膽怯了! 這離別的日子終究來了。 回去要再次走在那天讓我彷徨了又彷徨的街道;要再次眺望那在秋天沒...
    菩提子花閱讀 216評論 0 0