本文版权归博客园和做者吴双本人共同全部 转载和爬虫请注明原文地址 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.分布式队列
本文主要是安装配置,分布式理论的学习仍是比较好,接下来将会继续分享实践中的收获。