ZooKeeper搭建方式
一般集群搭建的方式都分三种:
- 单机模式: ZooKeeper只运行在一台服务器,适合测试环境
- 伪集群模式: 就是在一台物理机上运行多个ZooKeeper实例,适合测试环境
- 集群模式: ZooKeeper运行在一个集群上,适合生产环境 ZooKeeper通过复制来实现高可用性,只要集合中半数以上的机器处于可用状态,它就能够保证服务继续,所以一个正常的集群最少3台。
ZooKeeper伪集群部署
为了方便我就只在一台服务器上做ZooKeeper集群,分布式部署可以参照该部署方式完成。
zookeeper官网地址:https://zookeeper.apache.org/
node-1
1~]# tar xf zookeeper-3.4.11.tar.gz -C /usr/local/2~]# cd /usr/local/zookeeper-3.4.11/conf3~]# cp zoo_sample.cfg zoo1.cfg4~]# cat zoo1.cfg5tickTime=2000 发送心跳的间隔(毫秒)6initLimit=10 初始化zookeeper时,连接到leader的follower服务器,最长可以忍受多少个心跳周期7syncLimit=5 leader与follower之间发送消息,请求和应答的时间长度,最长可以忍受多少个心跳周期8dataDir=/data/zookeeper/node-1/data dataDir顾名思义就是zookeeper保存数据的目录,默认情况下zookeeper将写数据的日志文件也保存在这个目录里9dataLogDir=/data/zookeeper/node-1/log zookeeper将数据的日志文件保存的目录10clientPort=2181 客户端连接到zookeeper服务器端口11#maxClientCnxns=60 客户端连接到zookeeper服务器的最大并发连接数12#autopurge.snapRetainCount=3 在dataDir中保留的快照数量13#autopurge.purgeInterval=1 清除任务的间隔时间(小时)1415server.0=localhost:2287:3387 0号服务器,2287是集群成员的信息交换,3387进行重新选举leader所用的端口16server.1=localhost:2288:338817server.2=localhost:2289:33891819~]# echo 0 > /data/zookeeper/node-1/data/myid #创建myid文件node-2
1~]# cp zoo_sample.cfg zoo2.cfg2~]# vim zoo2.cfg3tickTime=20004initLimit=105syncLimit=56dataDir=/data/zookeeper/node-2/data7dataLogDir=/data/zookeeper/node-2/log8clientPort=21829server.0=localhost:2287:338710server.1=localhost:2288:338811server.2=localhost:2289:338912~]# echo 1 > /data/zookeeper/node-2/data/myidnode-3
1~]# cp zoo_sample.cfg zoo3.cfg2~]# vim zoo3.cfg3tickTime=20004initLimit=105syncLimit=56dataDir=/data/zookeeper/node-3/data7dataLogDir=/data/zookeeper/node-3/log8clientPort=21839server.0=localhost:2287:338710server.1=localhost:2288:338811server.2=localhost:2289:338912~]# echo 2 > /data/zookeeper/node-3/data/myid
启动zookeeper
1 | ~]# cd ../bin |
2 | ~]# ./zkServer.sh start ../conf/zoo1.cfg |
3 | ~}# ./zkServer.sh start ../conf/zoo2.cfg |
4 | ~]# ./zkServer.sh start ../conf/zoo3.cfg |
5 | |
6 | ~]# ./zkServer.sh status ../conf/zoo2.cfg |
7 | ZooKeeper JMX enabled by default |
8 | Using config: ../conf/zoo2.cfg |
9 | Mode: leader |
10 | ~]# ./zkServer.sh status ../conf/zoo1.cfg |
11 | ZooKeeper JMX enabled by default |
12 | Using config: ../conf/zoo1.cfg |
13 | Mode: follower |
14 | ~]# ./zkServer.sh status ../conf/zoo3.cfg |
15 | ZooKeeper JMX enabled by default |
16 | Using config: ../conf/zoo3.cfg |
17 | Mode: follower |