本文版權歸博客園和做者吳雙本人共同全部 轉載和爬蟲請註明原文地址 www.cnblogs.com/tdwshtml
ZK是一個高效的分佈式協調服務,高可用的分佈式管理協調框架。 朋友推薦一本書《從paxos到zookeeper》,對我幫助的確很大。 java
java安裝和環境變量配置能夠參考 http://www.cnblogs.com/tdws/p/4096300.html web
1 wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz 下載 2 3 tar -zxvf zookeeper-3.4.10.tar.gz 解壓 4 5 mv zookeeper-3.4.10 /usr/local 剪切 6 7 mv zookeeper-3.4.10/ zookeeper 重命名
下面修改配置文件命名apache
1 cd /usr/local/zookeeper/conf 2 mv zoo_sample.cfg zoo.cfg
dataDir=/usr/local/zookeeper/data
自行mkdir建立data文件夾。服務器
1 server.1=your_ip:20881:30881 2 server.2=your_ip:20882:30882 3 server.3=your_ip:20883:30883
1 cp -r zookeeper/ zookeeper1 2 cp -r zookeeper/ zookeeper2 3 cp -r zookeeper/ zookeeper3
1 server.1=0.0.0.0:20881:30881 2 server.2=0.0.0.0:20882:30882 3 server.3=0.0.0.0:20883:30883
學習ZK一段時間,原生API比較難以使用,通常使用zkClient(dubbo依賴於此)和curator框架來操做ZK比較容易。 其典型應用場景包括如下幾點:網絡
1.數據發佈與訂閱併發
ZK在dubbo中做爲註冊中心的角色,服務方和調用方都在這裏註冊。舉例來講明,我發佈了一個dubbo service,消費者webapp引用這個服務app
<dubbo:service interface="com.s2s.service.ItemService" ref="itemServiceImpl"/> 發佈的服務
<dubbo:reference interface="com.s2s.service.ItemService" id="itemService"/> 引用服務(將使用RPC調用)
接下來去服務器上查看數據節點,負載均衡
能夠看到根目錄上有dubbo節點,dubbo下有com.s2s.service.ItemService, 其節點下又有consumers和providers等。框架
服務提供者啓動時向/dubbo/com.s2s.service.ItemService/providers目錄下寫入URL
服務消費者啓動時訂閱/dubbo/com.s2s.service.ItemService/providers目錄下的URL。 而且向/dubbo/com.s2s.service.ItemService/consumers目錄下寫入本身的URL
監控中心啓動時訂閱/dubbo/com.s2s.service.ItemService/目錄下的全部提供者和消費者URL。
因此dubbo監控中心,查看到消費者和服務提供者
2.負載均衡
3.命名服務
4.分佈式通知和協調
5.集羣管理與Master選舉
好比SolrCloud管理。管理集羣配置,監控集羣狀態,選舉分片leader
6.分佈式鎖
7.分佈式隊列
本文主要是安裝配置,分佈式理論的學習仍是比較好,接下來將會繼續分享實踐中的收穫。