Zookeeper(1)---初识

一.ZK简述html

Zookeeper,它是一个分布式程序的协调服务,它主要是用来解决分布式应用中的一些数据管理问题,好比集群管理,分布式应用配置,分布式锁,服务注册/发现等等。java

它是一个相似于文件系统的树状结构。每一个目录被称为znode,能够删除目录,添加子目录这些操做,不一样的是每一个znode上面都是存储数据的,以下图:node

 

 客户端能够监听这些目录节点,当结点数据发生改变,节点被删除,增长子节点时,zk会通知客户端。以此来实现不少分布式数据管理的操做。好比咱们把服务的一些配置数据放在某个节点上面,全部的该服务都监听这个节点,一旦节点数据(配置)发生变化,全部的该服务都会收到通知,而后各自更新配置,就不用每一个服务都手动去更新配置了。apache

 

ZK的节点有四种类型的:windows

 

持久节点(PERSISTENT):客户端与ZK断开链接以后,节点依旧存在并发

 

持久序号节点(PERSISTENT_SEQUENTIAL):同持久节点,只是ZK会给该结点进行顺序编号分布式

 

临时节点(EPHEMERAL):客户端与ZK断开链接以后,节点会被删除spa

 

临时序号节点(EPHEMERAL_SEQUENTIAL):同临时节点,只是ZK会给该结点进行顺序编号3d

 

 

2、安装和配置htm

 

简单有个认识以后,安装来体验一下:

 

ZKjava开发的,因此先要有JDK

 

https://zookeeper.apache.org/releases.html#download

 

下载解压这个就赘述了

 

解压以后的/conf目录下面有默认的配置文件zoo_sample.cfg

 

重命名或者复制一份出来:cp zoo_sample.cfg  zoo.cfg

 

而后去解压后的bin目录下面,执行zkServer.sh脚本 默认会使用zoo.cfg配置文件;或者指定配置文件启动:./zkServer.sh start ../conf/zoo.cfg 若是是windows环境那么就执行cmd的脚本就能够了。

 

 

 

 

至此zk服务就启动了,默认的端口号2181.

如今咱们再回来看看zk的一些配置信息(zoo.cfg文件):

 

tickTime=2000   zookeeper时间配置中的基本单位 (毫秒)

 

initLimit=10 容许follower初始化链接到leader最大时长,它表示tickTime时间倍数 即:initLimit*tickTime

 

syncLimit=5 容许follower与leader数据同步最大时长,它表示tickTime时间倍数 

 

dataDir=/tmp/zookeeper  数据存储目录

 

clientPort=2181   对客户端提供的端口号

 

maxClientCnxns=60 单个客户端与zookeeper最大并发链接数

 

autopurge.snapRetainCount=3  保存的数据快照数量,以外的将会被清除

 

autopurge.purgeInterval=1  自动触发清除快照任务时间间隔超过autopurge.snapRetainCount配置的,小时为单位。默认为0,表示不自动清除。

 

 

3、体验

 

先使用自带客户端来链接玩玩 bin目录下面./zkCli.sh

 

链接以后可使用help查看指令

 

 

create [-s] [-e] [-c] [-t ttl] path [data] [acl] 建立节点 -s序号节点 -e临时节点

Delete 删除节点(有子节点不能删除)

Deleteall 删除节点(包含子节点)

Delquota [-n] [-b] 删除配额(好比节点设置了数据大小限制) -n数量  -b 大小

get [-s] [-w] path 查看节点 -s包含状态 -w添加监听

getAcl [-s]  path 获取权限配置

History  查看历史指令

listquota path 当前节点有哪些配额

ls [-s] [-w] [-R] path 查看全部子节点 -R递归查看全部子节点

removewatches path [-c|-d|-a] [-l]   删除监听

set [-s] [-v version] path data  修改数据

setAcl [-s] [-v version] [-R] path acl 添加/修改权限

setquota -n|-b val path   设置配额

stat [-w] path   查看状态

sync path 强制同步节点数据

 

知道了这些命令以后就能够玩一下了:

Ls  /  查看根节点,能够看到默认就有一个zookeeper节点

 

 

注意点:

1.建立节点要以/开始

 

 

 2.建立节点只能一级一级的建立

 

 3.临时节点不能建立子节点

相关文章
相关标签/搜索