zookeeper入門

目的:想把爬蟲系統的配置轉移到zookeeper管理java

zookeeper做爲一個幫助搭建分佈式系統的框架,在統一管理配置和選舉master上的很是優秀。node

ZooKeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步、組服務等  apache


zookeeper安裝部署

測試使用zookeeper很是簡單,如今如今,簡單的配置便可windows

download : http://www.apache.org/dyn/closer.cgi/zookeeper/(官方推薦版本) api

解壓:目錄結構 最主要的幾個目錄併發

bin 啓動命令所在目錄
conf zookeeper的配置 zoo.conf

windows下點擊 zkserver.cmd 啓動框架

zoo.conf的具體配置種目前最關鍵的就是 對外的端口 默認 2181分佈式

觀察控制檯,通常不報錯,就是啓動成功了。oop


簡單理解  

1:zookeeper 實現了一個簡單的樹形結構的文件系統,node節點的概念就是樹形結構上的一個節點。測試

這樣一個結構,每個node節點均可以存儲數據,配置的統一管理實現根本也在這個地方,把配置數據存儲到某一個節點上,我肯能夠想象成咱們在咱們的電腦上建了一個層級的文件夾層,每個文件夾內均可以存放數據,這些數據就是咱們須要統一管理的配置信息。

2:如何實現的數據一致性 。

watcher :zookeeper客戶端調用的時候,會定義一個wather ,watcher的概念個人理解就是一個看門狗,時刻的監控的本身監控的節點的數據變化,  好比咱們把咱們爬蟲系統全局的一些信息(網站的最大並併發請求maxRrequestNum)存儲到了node2-2 上,這個時候客戶端鏈接到zookeeper文件系統後,對node2-2 這個path添加了監聽,文件內容發生變化,通知客戶端(對應舉個例子就是給看門狗安排了個任務,給我看着這塊地方,若是這塊地方有啥動靜,就叫兩聲,讓主人知道),客戶端收到這個變化的通知後,就能夠同步最新的數據,保證數據一致性。給感興趣的node添加的這個watcher(條看門狗)是保證一致性的關鍵。他能夠在發生數據變化的時候及時通知客戶端(主人)。

3:zookeeper 客戶端調用。

 3.1:zookeeper自帶了客戶端調用的api

3.2: 還有一些三方封裝的zkclient,使用起來也很是的方便。

 

3.3:調用代碼:

code area

選舉:

稍後在再研究....

相關文章
相關標籤/搜索