ZooKeeper是一个高性能的分布式应用的协调服务,通过ZooKeeper提供的接口可以实现命名、配置管理、同步和集群管理、选举的操作。
软件包准备
在ZooKeeper官网下载最新的稳定版本。
- bin/ zk的脚本,包含zk的服务、客户端和状态查看的脚本
- conf/ 配置文件
- recipses/ zk的示例代码
运行模式
只启用一个zk为单机模式,常常用在开发测试环境中。启用多个zk为集群模式。一台集群上起多个ZooKeeper进程在生产环境中是没有任何意义的,因为同一台机器上起多个zk会增加物理机的消耗,并且并不能达到高可用的效果。
单机模式
创建一个 conf/zoo:
- tickTime=2000
zk的度量时间,单位毫秒。一倍单位是心跳监测时间,两倍单位是会话超时时间;- dataDir=/var/lib/zookeeper
用于存储保存在内存中的数据的快照,如果没有设置数据日志目录,事务日志也会存储在这而;- clientPort=2181
zk监听的端口
进入bin目录,启动服务
/zkServer.sh start
可以通过
./zkServer.sh status
查看zk的状态
也可以通过 zkCli.sh -server ip:port 连接zk
输入help可以查看能够使用的指令
[zk: localhost:2181(CONNECTED) 3] help
ZooKeeper -server host:port cmd args
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
这里就不详细描述了
集群模式
集群模式中在配置文件中多了如下内容
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
initLimit follower和leader进行数据同步的最大时长
syncLimit follower和leader进行通信的最大时间长度
server.id=host:port1:port2 port1 为follower和leader的通信端口,port2 为选举所使用的端口
不同机器使用同一份配置文件便可以启动一个zk集群
参考:
网友评论