zookeeper是一個(gè)分布式應(yīng)用協(xié)調(diào)服務(wù),主要用來(lái)解決分布式應(yīng)用配置項(xiàng)的管理、同步服務(wù)、集群管理等,它由Java語(yǔ)言編寫(xiě),但它支持Java和C兩種編程語(yǔ)言接口;
?
環(huán)境部署
操作系統(tǒng):centos 6.4
JDK版本:1.7.0_60
?
單機(jī)模式
1、安裝包下載地址: http://www.apache.org/dyn/closer.cgi/zookeeper/
2、安裝包下載完后,解壓到根目錄下的cloud(該目錄自己創(chuàng)建)目錄中;
3、cp /cloud/zookeeper-3.4.5/conf/zoo_sample.cfg ./zoo.cfg
4、修改配置文件(zoo.cfg)
??? 將dataDir的字段值修改為/cloud/zookeeper-3.4.5/tmp,即:dataDir=/cloud/zookeeper-3.4.5/tmp
??? 說(shuō)明:tmp目錄需要根據(jù)路徑地址手動(dòng)創(chuàng)建,dataDir字段的值用于指定存儲(chǔ)內(nèi)存中數(shù)據(jù)快照的位置;
??? 在配置文件中最后添加一行配置:server.1=chenx:2888:3888
??? 說(shuō)明:chenx為主機(jī)名,需要在/etc/hosts配置IP與主機(jī)名的映射,當(dāng)然也可以直接用IP地址,2888為從機(jī)器連接到主機(jī)器的端口,3888為進(jìn)行l(wèi)eader選舉的端口;
5、/cloud/zookeeper-3.4.5/tmp目錄下創(chuàng)建一個(gè)myid文件,里面內(nèi)容是server.N中的N(如:server.1里面內(nèi)容為1)
??? echo "1" > myid
6、啟動(dòng)zookeeper,在命令行中運(yùn)行 /cloud/zookeeper-3.4.5/bin/zkServer.sh start ,運(yùn)行jps查看到QuorumPeerMain進(jìn)程表示成功;
?
?
偽分布式
同一臺(tái)機(jī)器上啟動(dòng)多個(gè)zookpeer服務(wù),與單機(jī)模式的部署大部分相同,不同點(diǎn)如下:
1、配置多份zoo.cfg文件(文件名任意),如:zoo1.cfg、zoo2.cfg等;
2、 每份配置文件中clientPort、dataDir值不要一樣也不要沖突;
3、啟動(dòng)多少個(gè)zookeeper服務(wù),就需重復(fù)多少次單機(jī)模式配置中的第四步,且連接端口和選舉端口不要相同;
配置圖1:
配置圖2:
?
集群模式
與偽分布式差不多,唯一的區(qū)別在于zookeeper的安裝程序,需要在集群中的各個(gè)節(jié)點(diǎn)上重復(fù)上述配置過(guò)程;
?
配置參數(shù)(zoo.cfg)整理說(shuō)明
1、initLimit:Zookeeper接受客戶端初始化連接時(shí)最長(zhǎng)能忍受多少個(gè)心跳時(shí)間間隔;
2、syncLimit:標(biāo)識(shí)Leader與Follower之間發(fā)送消息,請(qǐng)求和應(yīng)答時(shí)間長(zhǎng)度,最長(zhǎng)不能超過(guò)多少個(gè)tickTime的時(shí)間長(zhǎng)度;
3、tickTime:維持Zookeeper服務(wù)之間或客戶端與服務(wù)器之間心跳的時(shí)間間隔;(以毫秒為單位)
4、dataDir:Zookeeper保存內(nèi)存數(shù)據(jù)快照的目錄,默認(rèn)情況下,Zookeeper將寫(xiě)數(shù)據(jù)的日志文件也保存在該目錄;
5、clientPort:客戶端連接Zookeeper服務(wù)端端口,Zookeeper會(huì)監(jiān)聽(tīng)該端口,并接受客戶端的訪問(wèn)請(qǐng)求;
6、查看Zookeeper是否在服務(wù):echo ruok | nc localhost 2181
?
zookeeper高可用
Zookeeper通過(guò)復(fù)制來(lái)實(shí)現(xiàn)高可用性,只要集合體中半 數(shù)以上的機(jī)器處于可用狀態(tài),它就能夠保證服務(wù)繼續(xù)。之所以要超過(guò)半數(shù)與Zookeeper的賦值策略有關(guān),Zookeeper確保對(duì)znode樹(shù)的每一個(gè)修改都會(huì)被復(fù)制到集合體中超過(guò)半數(shù)的機(jī)器上。而在Zookeeper部署中通常采用2n+1的方式,可容納n臺(tái)機(jī)器掛掉;
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
