zookeeper 集群

zookeeper 集群

1、zookeeper 集群说明

initLimit 是Zookeeper用它来限定集群中的Zookeeper服务器连接到Leader的时限
syncLimit 限制了follower服务器与leader服务器之间请求和应答之间的时限
服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
这个配置项的书写格式比较特殊,规则如下:server.N=YYY:A:B 其中,
N表示服务器编号,
YYY表示服务器的IP地址,
A为LF通信端口,表示该服务器与集群中的leader交换的信息的端口。
B为选举端口,表示选举新leader时服务器间相互通信的端口(当leader挂掉时,其余服务器会相互通信,选择出新的leader)

一般来说,集群中每个服务器的A端口都是一样,每个服务器的B端口也是一样。
下面是一个集群的例子:

server.0=233.34.9.144:2008:6008  
server.1=233.34.9.145:2008:6008  
server.2=233.34.9.146:2008:6008
server.3=233.34.9.147:2008:6008  

但是当所采用的为伪集群时,IP地址都一样,只能是A端口和B端口不一样。
下面是一个伪集群的例子:

server.0=127.0.0.1:2008:6008
server.1=127.0.0.1:2007:6007
server.2=127.0.0.1:2006:6006
server.3=127.0.0.1:2005:6005

2、搭建集群

2.1 拷贝赋值

zookeeper-3.4.14.tar.gz解压后拷贝到/opt目录下并重新名为zk01。

[root@localhost myzookeeper]# mv zookeeper-3.4.14.tar.gz /opt/ 
[root@localhost opt]# tar -zxvf zookeeper-3.4.14.tar.gz
[root@localhost opt]# mv zookeeper-3.4.14 zk01

2.2 在zk01中的创建mydata文件夹

[root@localhost zk01]# mkdir mydata

2.3 新建zoo.cfg

[root@localhost conf]# cp zoo_sample.cfg zoo.cfg

2.4 修改zoo.cfg配置文件

zookeeper 集群_第1张图片

server.1=127.0.0.1:2991:3991
server.2=127.0.0.1:2992:3992
server.3=127.0.0.1:2993:3993

2.5 创建myId文件

在zk01的 mydata下面创建myid的文件,在里面写入server的数字
表示1号服务器

# vim myid

里面写1 然后退出并保存
在这里插入图片描述

为了确保zk01 正确,我们可以启动测试一下
zookeeper 集群_第2张图片

关闭当前的zk01 服务

[root@localhost opt]# kill -9 4060

2.6 将zk01 赋值两份分别为zk02,zk03

[root@localhost opt]# cp -r zk01 zk02
[root@localhost opt]# cp -r zk01 zk03

2.7 修改zk02,zk03的zoo.cfg,myid配置文件

#zk02
[root@localhost opt]# vim zk02/conf/zoo.cfg
在这里插入图片描述

[root@localhost opt]# vim zk02/mydata/myid 

在这里插入图片描述

#zk03

[root@localhost opt]# vim zk03/conf/zoo.cfg 

在这里插入图片描述

 
[root@localhost opt]# vim zk03/mydata/myid

在这里插入图片描述

2.8 启动集群

# vim startup.sh
/opt/zk01/bin/zkServer.sh start
/opt/zk02/bin/zkServer.sh start
/opt/zk03/bin/zkServer.sh start
:wq 
# chmod +x startup.sh
./startup.sh
查看进程
# ps –ef |grep zookeeper
2.9 使用客户端链接集群
[root@localhost opt]# ./zk01/bin/zkCli.sh -server 127.0.0.1:2191

在客户端2191 中添加节点
在这里插入图片描述

在客户端2192中查询
在这里插入图片描述

2.10 查看节点的状态

[root@localhost opt]# ./zk01/bin/zkServer.sh status

zookeeper 集群_第3张图片

2.11 集群主机宕机情况测试

测试1:主机宕机
	./zk02/bin/zkServer.sh stop
	[root@localhost opt]# ./zk01/bin/zkServer.sh status
	ZooKeeper JMX enabled by default
	Using config: /opt/zk01/bin/../conf/zoo.cfg
	Mode: follower
	[root@localhost opt]# ./zk02/bin/zkServer.sh status
	ZooKeeper JMX enabled by default
	Using config: /opt/zk02/bin/../conf/zoo.cfg
	Error contacting service. It is probably not running.
	[root@localhost opt]# ./zk03/bin/zkServer.sh status
	ZooKeeper JMX enabled by default
	Using config: /opt/zk03/bin/../conf/zoo.cfg
	Mode: leader
	[root@localhost opt]# 
	
	3号上位!
	create /test01 test01
	
	13都有数据。
测试2:主机活了
	./zk02/bin/zkServer.sh start
	
	[root@localhost opt]# ./zk02/bin/zkServer.sh start
	ZooKeeper JMX enabled by default
	Using config: /opt/zk02/bin/../conf/zoo.cfg
	Starting zookeeper ... STARTED
	[root@localhost opt]# ./zk01/bin/zkServer.sh status
	ZooKeeper JMX enabled by default
	Using config: /opt/zk01/bin/../conf/zoo.cfg
	Mode: follower
	[root@localhost opt]# ./zk02/bin/zkServer.sh status
	ZooKeeper JMX enabled by default
	Using config: /opt/zk02/bin/../conf/zoo.cfg
	Mode: follower
	[root@localhost opt]# ./zk03/bin/zkServer.sh status
	ZooKeeper JMX enabled by default
	Using config: /opt/zk03/bin/../conf/zoo.cfg
	Mode: leader
	[root@localhost opt]# 
	
	查看2号机是否有数据同步?
	[zk: 127.0.0.1:2192(CONNECTED) 0] ls /
	[zookeeper, test, test01]

你可能感兴趣的:(Spring,Cloud,zookeeper,debian,分布式)