zookeeperr(分布式應(yīng)用程序協(xié)調(diào)服務(wù))
詳情介紹
zookeeper是一個開源的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的chubby一個開源的實現(xiàn),是Hadoop和Hbase的重要組成部件。除了能夠為用戶的分布式應(yīng)用提供一致性的服務(wù),還能夠進行配置維護、域名服務(wù)、分布式同步等等功能,對于開發(fā)人員來說,這款軟件是一個非常高效可靠的服務(wù)軟件。zookeeper的目標(biāo)是為了封裝好復(fù)雜易出錯的關(guān)鍵服務(wù),將簡單易用的借口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶,軟件擁有兩個接口,Java和C語言,也就是說目前還是只有這兩個開發(fā)語言的用戶使用的較多。
如下圖所示:
2、解壓后進入conf文件夾下面,把zoo_sample.cfg復(fù)制一份并改名為zoo.cfg。
如下圖所示:
備注:zoo.cfg是zookeeper配置文件入口,必須修改為zoo.cfg.
3、在根目錄下新建一個data文件夾和一個log文件夾,分別存儲數(shù)據(jù)和日志。
4、進入conf文件夾下面,修改zoo.cfg配置文件,把dataDir=/tmp/zookeeper修改成zookeeper安裝目錄所在的data文件夾,以及dataLogDir修改為log文件夾。
如下圖所示:
進入bin文件夾,雙擊點擊zkServer.cmd啟動zookeeper。
如下圖所示:
控制臺顯示:
啟動zookeeper客戶端
雙擊zkCli.cmd啟動客戶端,出現(xiàn):
表示啟動成功了。
2、同步數(shù)據(jù)。
3、選舉Leader過程中算法有很多,但要達到的選舉標(biāo)準(zhǔn)是一致的。
4、Leader要具有最高的zxid。
5、集群中大多數(shù)的機器得到響應(yīng)并follow選出的Leader。
那么Zookeeper能做什么事情呢,簡單的例子:假設(shè)我們有20個搜索引擎的服務(wù)器(每個負(fù)責(zé)總索引中的一部分的搜索任務(wù))和一個總服務(wù)器(負(fù)責(zé)向這20個搜索引擎的服務(wù)器發(fā)出搜索請求并合并結(jié)果集),一個備用的總服務(wù)器(負(fù)責(zé)當(dāng)總服務(wù)器宕機時替換總服務(wù)器),一個web的cgi(向總服務(wù)器發(fā)出搜索請求)。搜索引擎的服務(wù)器中的15個服務(wù)器提供搜索服務(wù),5個服務(wù)器正在生成索引。這20個搜索引擎的服務(wù)器經(jīng)常要讓正在提供搜索服務(wù)的服務(wù)器停止提供服務(wù)開始生成索引,或生成索引的服務(wù)器已經(jīng)把索引生成完成可以提供搜索服務(wù)了。使用Zookeeper可以保證總服務(wù)器自動感知有多少提供搜索引擎的服務(wù)器并向這些服務(wù)器發(fā)出搜索請求,當(dāng)總服務(wù)器宕機時自動啟用備用的總服務(wù)器。
zookeeper安裝
1、下載完最新zookeeper 3.9.1穩(wěn)定版本后,解壓下載的壓縮包。如下圖所示:
2、解壓后進入conf文件夾下面,把zoo_sample.cfg復(fù)制一份并改名為zoo.cfg。
如下圖所示:
備注:zoo.cfg是zookeeper配置文件入口,必須修改為zoo.cfg.
3、在根目錄下新建一個data文件夾和一個log文件夾,分別存儲數(shù)據(jù)和日志。
4、進入conf文件夾下面,修改zoo.cfg配置文件,把dataDir=/tmp/zookeeper修改成zookeeper安裝目錄所在的data文件夾,以及dataLogDir修改為log文件夾。
如下圖所示:
zookeeper啟動流程
啟動zookeeper服務(wù)端進入bin文件夾,雙擊點擊zkServer.cmd啟動zookeeper。
如下圖所示:
控制臺顯示:
啟動zookeeper客戶端
雙擊zkCli.cmd啟動客戶端,出現(xiàn):
表示啟動成功了。
zookeeper原理
1、選舉Leader。2、同步數(shù)據(jù)。
3、選舉Leader過程中算法有很多,但要達到的選舉標(biāo)準(zhǔn)是一致的。
4、Leader要具有最高的zxid。
5、集群中大多數(shù)的機器得到響應(yīng)并follow選出的Leader。
軟件特點
在Zookeeper中,znode是一個跟Unix文件系統(tǒng)路徑相似的節(jié)點,可以往這個節(jié)點存儲或獲取數(shù)據(jù)。如果在創(chuàng)建znode時Flag設(shè)置為EPHEMERAL,那么當(dāng)創(chuàng)建這個znode的節(jié)點和Zookeeper失去連接后,這個znode將不再存在在Zookeeper里,Zookeeper使用Watcher察覺事件信息。當(dāng)客戶端接收到事件信息,比如連接超時、節(jié)點數(shù)據(jù)改變、子節(jié)點改變,可以調(diào)用相應(yīng)的行為來處理數(shù)據(jù)。Zookeeper的Wiki頁面展示了如何使用Zookeeper來處理事件通知,隊列,優(yōu)先隊列,鎖,共享鎖,可撤銷的共享鎖,兩階段提交。那么Zookeeper能做什么事情呢,簡單的例子:假設(shè)我們有20個搜索引擎的服務(wù)器(每個負(fù)責(zé)總索引中的一部分的搜索任務(wù))和一個總服務(wù)器(負(fù)責(zé)向這20個搜索引擎的服務(wù)器發(fā)出搜索請求并合并結(jié)果集),一個備用的總服務(wù)器(負(fù)責(zé)當(dāng)總服務(wù)器宕機時替換總服務(wù)器),一個web的cgi(向總服務(wù)器發(fā)出搜索請求)。搜索引擎的服務(wù)器中的15個服務(wù)器提供搜索服務(wù),5個服務(wù)器正在生成索引。這20個搜索引擎的服務(wù)器經(jīng)常要讓正在提供搜索服務(wù)的服務(wù)器停止提供服務(wù)開始生成索引,或生成索引的服務(wù)器已經(jīng)把索引生成完成可以提供搜索服務(wù)了。使用Zookeeper可以保證總服務(wù)器自動感知有多少提供搜索引擎的服務(wù)器并向這些服務(wù)器發(fā)出搜索請求,當(dāng)總服務(wù)器宕機時自動啟用備用的總服務(wù)器。
下載地址
- 電腦版
zookeeperr(分布式應(yīng)用程序協(xié)調(diào)服務(wù)) v3.9.2
- 本地下載通道:
- 浙江電信下載
- 北京聯(lián)通下載
- 江蘇電信下載
- 廣東電信下載
同類軟件
網(wǎng)友評論
共0條評論(您的評論需要經(jīng)過審核才能顯示)