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/conf
3
~]# cp zoo_sample.cfg zoo1.cfg
4
~]# cat zoo1.cfg
5
tickTime=2000 发送心跳的间隔(毫秒)
6
initLimit=10 初始化zookeeper时,连接到leader的follower服务器,最长可以忍受多少个心跳周期
7
syncLimit=5 leader与follower之间发送消息,请求和应答的时间长度,最长可以忍受多少个心跳周期
8
dataDir=/data/zookeeper/node-1/data dataDir顾名思义就是zookeeper保存数据的目录,默认情况下zookeeper将写数据的日志文件也保存在这个目录里
9
dataLogDir=/data/zookeeper/node-1/log zookeeper将数据的日志文件保存的目录
10
clientPort=2181 客户端连接到zookeeper服务器端口
11
#maxClientCnxns=60 客户端连接到zookeeper服务器的最大并发连接数
12
#autopurge.snapRetainCount=3 在dataDir中保留的快照数量
13
#autopurge.purgeInterval=1 清除任务的间隔时间(小时)
14
15
server.0=localhost:2287:3387 0号服务器,2287是集群成员的信息交换,3387进行重新选举leader所用的端口
16
server.1=localhost:2288:3388
17
server.2=localhost:2289:3389
18
19
~]# echo 0 > /data/zookeeper/node-1/data/myid #创建myid文件
node-2
1
~]# cp zoo_sample.cfg zoo2.cfg
2
~]# vim zoo2.cfg
3
tickTime=2000
4
initLimit=10
5
syncLimit=5
6
dataDir=/data/zookeeper/node-2/data
7
dataLogDir=/data/zookeeper/node-2/log
8
clientPort=2182
9
server.0=localhost:2287:3387
10
server.1=localhost:2288:3388
11
server.2=localhost:2289:3389
12
~]# echo 1 > /data/zookeeper/node-2/data/myid
node-3
1
~]# cp zoo_sample.cfg zoo3.cfg
2
~]# vim zoo3.cfg
3
tickTime=2000
4
initLimit=10
5
syncLimit=5
6
dataDir=/data/zookeeper/node-3/data
7
dataLogDir=/data/zookeeper/node-3/log
8
clientPort=2183
9
server.0=localhost:2287:3387
10
server.1=localhost:2288:3388
11
server.2=localhost:2289:3389
12
~]# 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 |