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
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
[root@localhost zk01]# mkdir mydata
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
server.1=127.0.0.1:2991:3991
server.2=127.0.0.1:2992:3992
server.3=127.0.0.1:2993:3993
在zk01的 mydata下面创建myid的文件,在里面写入server的数字
表示1号服务器
# vim myid
关闭当前的zk01 服务
[root@localhost opt]# kill -9 4060
[root@localhost opt]# cp -r zk01 zk02
[root@localhost opt]# cp -r zk01 zk03
#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
# 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
[root@localhost opt]# ./zk01/bin/zkServer.sh status
测试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
1,3都有数据。
测试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]