测试系统:CentOS6.5 64位
虚拟机:Vmware Workstation
Zookeeper集群节点数:3
ZK角色
- Leader: 负责写请求
- follower: 跟随者,具有投票权,否则读请求或转发写请求,具有投票权
- observer: 观察者,否则读请求,不具投票权
配置步骤
- apache官网下载stable版本的zookeeper,解压命令
tar -zxvf zookeeper-3.4.10.tar.gz
- 将解压的Zookeeper目录移动到/usr/local目录
命令:sudo mv zookeeper-3.4.10 /usr/local/
切换到目录:/usr/local/zookeeper-3.4.10/conf
- 复制zoo_sample.cfg为zoo.cfg文件,这个zookeeper的主控配置文件
命令:cp zoo_sample.cfg zoo.cfg
- 配置zoo.cfg文件
参数说明:
- tickTime:心跳时间:客户端与Zookeeper集群节点之间通信确认机制,保障高可用的特性
- initLimit:Zookeeper初始化运行的心跳数
- sysncLimit:客户端发送请求和接受响应过程允许的心跳数
- dataDir:zookeeper的快照文件存储目录
- ClientPort:zookeeper的服务端口
配置Zookeeper集群节点
格式:server.id =ip:A:B
- id:表示服务节点的编号
- ip:服务器节点的ip地址
- A:zookeeper集群内部的通信端口
- B:zookeeper集群内部选举端口
配置如下:
dataDir可自定义:不建议放入/tmp目录,因为Linux重启之后/tmp的数据可能丢失
-
创建myid文件 在dataDir指定的目录,创建myid文件,并存放与zookeeper定义的节点编号的值 命令:echo "1">myid
-
通过ssh将zookeeper配置好的文件目录分发给zookeeper其他节点服务器
命令:sudo scp -r zookeeper-3.4.10/ 192.168.174.144:/usr/local/
注意:修改myid文件,将内容更改为对应的编号
- 测试zookeeper集群:最好关闭防火墙,否则会干扰:sudo service iptables stop
每个节点通过bin目录下的zkServer.sh start启动,通过zkServer.sh status可查询当前节点在Zookeeper集群的角色
注意:只要当zoo.cfg配置的节点一半及以上的节点成功启动,zookeeper才能正常工作
- Zookeeper安装包自带的zkCli客户端工具进行测试 客户端连接Zookeeper集群命令:zkCli.sh -timeout 5000 -server 192.168.174.143:2181
参数说明:
- timeout:设置客户端与zookeeper集群通信的Session有效期
- server:指定服务节点地址
- 192.168.174.143:2181:连接zookeeper集群的节点地址和服务端口