Zookeeper初學篇

【是什麼】

       ZooKeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步、組服務等。以上官方說法,只知道ZooKeeper是一個分佈式服務框架,好了,接着往下看。

【有什麼】

一、類似文件系統的數據模型結構(在網上看到的圖,感覺很合適就直接拿來借用啦)


如上圖的目錄項,例如NameServices和Configuration之流,都成爲znode,每個znode都存儲了數據,我們可以自由的增減znode,當然也可以增減znode下的znode。

znode的類型,有四種:

①Persistent(持久化目錄節點):客戶端與Zookeeper斷開連接後,該節點依舊存在

②Persistent_sequential(持久化順序編號目錄節點):客戶端與Zookeeper斷開連接後,該節點依舊存在,只是Zookeeper給該節點名稱進行順序編號。

③Ephemeral(臨時目錄節點):客戶端與Zookeeper斷開連接後,該節點被刪除。

④Ephemeral_Sequential(臨時順序編號目錄節點):客戶端與Zookeeper斷開連接後,該節點被刪除,只是Zookeeper給該節點名稱進行順序編號。

二、通知機制

客戶端註冊監聽它所關心的目錄節點,簡單說,當該目錄節點發生變化時,Zookeeper就會通知客戶端。

【應該場景】

1.配置管理

如果程序分散部署在多臺機器上,對程序的配置或者對配置的改變就會變得很麻煩。如果將這些配置都放到Zookeeper上去,保存在Zookeeper相應的目錄節點中,然後利用Zookeeper的監聽功能,當配置信息發生變化時,相應的客戶端就會收到Zookeeper的通知,然後從Zookeeper中獲取最新的配置信息即可。

2.集羣管理

集羣管理,主要應用了Zookeeper的監聽,監聽是否有機器退出和加入。

所有機器都在父目錄下創建臨時目錄節點。剩下的就是對父目錄節點的監聽啦。一旦有機器退出,該機器就與Zookeeper的連接斷開,那麼,該節點所創建的臨時目錄節點被刪除,父目錄下所有的機器都收到通知;新機器加入類似。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章