一.简介
ZK的安装和配置十分简单,既可以配置成单机模式,也可以配置成集群模式,zk使用java编写的运行在java环境上,3个ZK服务进程是建议的最小进程数量,而且建议部署在不通的物理机上面,减少宕机带来的风险。
二.下载并解压 http://www.apache.org/dyn/closer.cgi/zookeeper/
三. 目录结构
bin zk的可执行脚本目录,包括zk服务进程,zk客户端,等脚本。其中,.sh是Linux环境下的脚本,.cmd是Windows环境下的脚本。
conf 配置文件目录。zoo_sample.cfg为样例配置文件,需要修改为自己的名称,一般为zoo.cfg。log4j.properties为日志配置文件。
lib zk依赖的包。
contrib 一些用于操作zk的工具包。
recipes zk某些用法的代码示例
四:配置项
配置:移动config下面的zoo_sample.cfg并重命名为zoo.cfg,打开zoo.cfg,看到默认配置如下:
tickTime: 时长单位为毫秒,为zk使用的基本时间度量单位。服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳,tickTime的默认值为2000毫秒,更低的tickTime值可以更快地发现超时问题,但也会导致更高的网络流量(心跳消息)和更高的CPU使用率(会话的跟踪处理)。
clientPort:客户端连接 Zookeeper 服务器的端口,zk服务进程监听的TCP端口,默认情况下,服务端会监听2181端口。
dataDir:无默认配置,必须配置,用于配置存储快照文件的目录。如果没有配置dataLogDir,那么事务日志也会存储在此目录。
initLimit:集群中的follower服务器与leader服务器之间初始连接时能容忍的最多心跳数。(tickTime数量)
syncLimit:集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数。(tickTime数量)
dataLogDir:日志文件目录
server.N=IP:port:port 服务器名称与地址:集群信息(服务器编号,服务器地址,leader follower通信端口,选举端口)
五:启动
./zkServer.sh start
后台运行:
./zkServer.sh start-foreground
六:连接
bin/zkCli.sh -server ip:port
七:client支持的命令
stat path [watch]
set path data [version] 设置节点数据
ls path [watch] 查看节点数据
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version] 删除节点
sync path
listquota path
rmr path
get path [watch] 获取节点
create [-s] [-e] path data acl 创建节点
addauth scheme auth
quit
getAcl path
close
connect host:port