www.cnblogs.com/tdwswww.cnblogs.com/tdws

正文版权归博客园和作者吴双本人并所有 转载和爬虫请注明原文地址
www.cnblogs.com/tdws

正文版权归博客园和作者吴双本人并拥有 转载和爬虫请注明原文地址
www.cnblogs.com/tdws

一.描写在前边

ZK是一个高效的分布式协调服务,高可用之分布式管理协调框架。
朋友推荐一本书《从paxos到zookeeper》,对自己拉的确挺要命。 

一.描绘于前面

ZK是一个迅速之分布式协调服务,高可用的分布式管理协调框架。
朋友推荐一本书《从paxos到zookeeper》,对自帮忙的确十分非常。 

二.集群配置以及踩坑

java安装与环境变量配置好参考 http://www.cnblogs.com/tdws/p/4096300.html 

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 重命名

下面修改配置文件命名

1 cd /usr/local/zookeeper/conf
2 mv zoo_sample.cfg zoo.cfg

安排一共没几履 。指定安排中之 
dataDir

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

于data文件夹着开创文件myid
来举行一个标识

nano myid 以文件被填写0
并且保留。需要留意的凡刚刚我们的zookeeper文件夹是勿动的,仅作为我们copy新节点的本来。

连下复制三卖zk

1 cp -r zookeeper/ zookeeper1
2 cp -r zookeeper/ zookeeper2
3 cp -r zookeeper/ zookeeper3

 

图片 1

个别修改三宝节点 其datadir
将路径指定到好节点之下

分级修改其端口号及myid,是各个zoo.conf
配置的中port 设置分别吗2181 2182 2183

依次myid内容分别吗1 2 3

下面 去三个zk bin目录下 执行zkServer.sh
start

图片 2

 

第一次 出错

Error contacting service. It is probably
not running.

哎 检查好几个钟头ZK配置文件
试了十几种植方法,
结果前JAVA_HOME不小心配置错了,我是yum安装之jdk。

 

第二次 出错与解决

后来同时发出同蹩脚错误 是我stop zk所有节点之后
再次启动于不来 首先 jps命令 然后来看进程id和QuorumPeerMain

把Quorumpeermain的进程kill -9杀死

 

第三次
我丢雷楼某! 这个算麻烦了

若果采用阿里云ECS
专有网络+弹性公网IP

诚如不能够一直在ECS实例的先后条例绑定和利用弹性公网IP地址。因为这公网IP地址在ECS之外。所以自己起了颇具的端口,根本没就此,最后动用0.0.0.0缓解问题。

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

图片 3

图片 4

二.集群配置和踩坑

java安装及环境变量配置好参考 http://www.cnblogs.com/tdws/p/4096300.html 

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 重命名

脚修改配置文件命名

1 cd /usr/local/zookeeper/conf
2 mv zoo_sample.cfg zoo.cfg

安排一共没几实践 。指定安排中的 
dataDir

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

在data文件夹着创造文件myid
来做一个标识

nano myid 于文件被填写0
并且保留。需要专注的是方我们的zookeeper文件夹是勿使的,仅看成咱们copy新节点的原本。

连片下复制三客zk

1 cp -r zookeeper/ zookeeper1
2 cp -r zookeeper/ zookeeper2
3 cp -r zookeeper/ zookeeper3

 

图片 5

分别修改三台节点 其datadir
将路径指定到温馨节点之下

独家修改该端口号及myid,是逐一zoo.conf
配置的中port 设置分别吗2181 2182 2183

依次myid内容分别吗1 2 3

下面 去三个zk bin目录下 执行zkServer.sh
start

图片 6

 

第一次 出错

Error contacting service. It is probably
not running.

哎 检查好几单钟头ZK配置文件
试了十几种艺术,
结果之前JAVA_HOME不小心配置错了,我是yum安装的jdk。

 

第二次 出错与缓解

新兴同时有同样糟错误 是自个儿stop zk所有节点之后
再次启航自无来 首先 jps命令 然后来看进程id和QuorumPeerMain

把Quorumpeermain的进程kill -9杀死

 

第三次
我丢雷楼某! 这个算麻烦了

使下阿里云ECS
专有网络+弹性公网IP

相似不克直接当ECS实例的先后条例绑定和采取弹性公网IP地址。因为此公网IP地址以ECS之外。所以我开始了装有的端口,根本没有因此,最后采取0.0.0.0解决问题。

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

图片 7

图片 8

三.使及总

上学ZK一段时间,原生API比较难以使用,一般下zkClient(dubbo因让之)和curator框架来操作ZK比较易于。 其独立以场景包括以下几沾:

1.数码公布与订阅

   
ZK在dubbo中作注册中心的角色,服务方和调用方都于此间登记。举例来验证,我发表了一个dubbo
service,消费者webapp引用这服务

 <dubbo:service interface="com.s2s.service.ItemService" ref="itemServiceImpl"/>   发布的服务

 <dubbo:reference interface="com.s2s.service.ItemService" id="itemService"/>     引用服务(将使用RPC调用)

  接下去服务器上查看数据节点,

图片 9

好看来根目录上出dubbo节点,dubbo下有com.s2s.service.ItemService,
其节点下而来consumers和providers等。

图片 10图片 11

服务提供者启动时向/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监控中心,查相顾客以及劳动提供者

图片 12

图片 13

2.载荷均衡

3.命名服务

4.分布式通知以及和谐

5.集群管理暨Master选举

6.分布式锁

    有众多人数所以它举行分布式锁
但是做法比较底层。临时节点是当同样浅对话内立竿见影,保证了出现异常时,锁能得释放。比如client1
做分布式操作 那他创建一个即节点 然后失去举行有旁数操作 做得了操作后,
再失把临时节点移除。这时c2才会去操作。如果生10独客户端
要操作同一个数目,但是是数据,有差不多单复制的版本
在不同之DB当中(当然值是一致)。

本条时候 分布式锁的意图就是是同步操作。客户端1 操作 这条数,
那就夺zk立即 就create个节点 代表占用了当时漫长数,这时候客户端2
并发操作就漫漫数 先去zk上get一下者节点,get到之话
可以等待一下,等客户端1 释放掉后,去重新create一下攻破数据。

7.分布式队列

正文主要是安配置,分布式理论的学还是于好,接下去将见面继续享受实践备受之博。

三.运及小结

攻ZK一段时间,原生API比较难以使用,一般采用zkClient(dubbo因让这个)和curator框架来操作ZK比较好。 其独立以场景包括以下几接触:

1.多少公布与订阅

   
ZK在dubbo中当注册中心的角色,服务方和调用方都于此间登记。举例来验证,我发表了一个dubbo
service,消费者webapp引用这服务

 <dubbo:service interface="com.s2s.service.ItemService" ref="itemServiceImpl"/>   发布的服务

 <dubbo:reference interface="com.s2s.service.ItemService" id="itemService"/>     引用服务(将使用RPC调用)

  接下去去服务器上查看数据节点,

图片 14

足见见根目录及出dubbo节点,dubbo下有com.s2s.service.ItemService,
其节点下而生出consumers和providers等。

图片 15图片 16

服务提供者启动时向/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监控中心,查相顾客以及服务提供者

图片 17

图片 18

2.载荷均衡

3.命名服务

4.分布式通知以及协调

5.集群管理以及Master选举

6.分布式锁

    有很多人数所以她做分布式锁
但是做法比较底层。临时节点是当同一差对话内有效,保证了出现异常时,锁能好释放。比如client1
做分布式操作 那他创办一个临时节点 然后去开片任何数操作 做扫尾操作后,
再错过管临时节点移除。这时c2才能够去操作。如果起10个客户端
要操作同一个数据,但是这个数目,有差不多只复制的本子
在不同的DB当中(当然值是平)。

这时节 分布式锁之企图就是是同步操作。客户端1 操作 这漫漫数据,
那就是去zk立即 就create个节点 代表占用了立长达数,这时候客户端2
并发操作就漫长数据 先去zk上get一下以此节点,get到的话
可以等待一下,等客户端1 释放掉后,去又create一下攻占数据。

7.分布式队列

正文主要是安装配置,分布式理论的上还是比较好,接下去将会持续享受实践备受之拿走。

相关文章