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

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