新萄京Centos7 ZookeeperCentos7 Zookeeper

本文版权归博客园和作者吴双本人并所有 转载和爬虫请注明原文地址
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.分布式队列

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注