Zookeeper 必须保证结点数量位奇数(2n+1),因为如果zookeeper运行的结点数必须大于挂掉的结点数
- 准备三胎服务器,并在三胎服务器中下载zookeeper,解压
- 创建配置文件(zoo.cfg)如下:
tickTime=2000
dataDir=/zookeeper/data/
clientPort=2181
initLimit=5
syncLimit=2
server.1=zk1:2888:3888
server.2=zk2:2887:3887
server.3=zk3:2886:3886
admin.serverPort=8080
- 修改/etc/hosts文件,增加如下,其中的ip为各自服务器的ip
10.68.56.24 zk1
10.68.56.82 zk2
10.68.56.112 zk3
- 在 dataDir配置的目录中增加myid文件
Echo “1” >> myid 三台服务中的id值应该不同
5. 启动服务
zookeeper/bin/zkServer.sh start /zookeeper/conf/zoo.cfg
- 查看服务状态
zookeeper/bin/zkServer.sh status /zookeeper/conf/zoo.cfg
zookeeper配置说明
tickTime | zookeeper服务端与客户端之间的服务心跳时间间隔,通常以毫秒为单位 |
initLimit | 集群中follower和leader之间初始连接时候所能容忍的最多心跳数(tickTime的整数倍)。如果在设定的次数内没,半数以上的跟随者未能完成同步,领导者就会宣布放弃领导地位,进行另一次的领导选举;所以如果集群数量很大,该值应该设置大一些,通常默认为10 |
syncLimit | 集群follower和leader之间请求应答所准许的时间心跳数,如在该心跳数范围内不能完成应答,则所有连接在该follower上的客户端被转移到其他follower上 |
dataDir | zookeeper快照存放目录 |
clientPort | zokeeper的服务接口 |
maxClientCnxns | 最大客户端连接数量 |
autopurge.snapRetainCount | 保存指定目录下的快照数量 |
autopurge.purgeInterval | 自动删除保存在指定目录下的快照的时间间隔,默认为0,表示不删除快照 |
server.x=ip:port1:port2 | x值在1-255之间,它必须与dataDir目录下myid中的值相同;port1是follower和leader之间的连接端口,leader之间选举端口 |
admin.serverPort | 默认为8080,admin服务地址,通过下面地址可以看到该管理员可执行的各种命令 http://ip:8080/commands |
admin.enableServer | 值为true|false是否开启admin服务,默认是开启的 |