zookeeper 笔记
虚拟机环境:
- linux centos6.5
- jdk1.8
1.环境安装[集群版]
- 下载zookeeper-3.4.14.tar.gz 并解压到linux某一路径下即可
- copy conf/zoo_sample.cfg配置为conf/zoo.cfg
- zoo.cfg属性介绍:
- tickTime:客户端与服务器或者服务器与服务器之间维持心跳,也就是每个tickTime时间就会发送一次心跳。通过心跳不仅能够用来监听机器的工作状态,还可以通过心跳来控制Flower跟Leader的通信时间,默认情况下FL的会话时常是心跳间隔的两倍。
- initLimit:集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
- syncLimit:集群中flower服务器(F)跟leader(L)服务器之间的请求和答应最多能容忍的心跳数。
- dataDir:该属性对应的目录是用来存放myid信息跟一些版本,日志,跟服务器唯一的pid信息等。
- clientPort:客户端连接的接口,客户端连接zookeeper服务器的端口,zookeeper会监听这个端口,接收客户端的请求访问!这个端口默认是2181。
- server.x:zk服务器配置 x一定要和dataDir中的myid文件中的值对应上;2888是leader和follower通讯使用的端口,3888是用于选举的端口,一旦leader宕机,其他服务器将使用3888端口进行通讯推选出新的leader
2.常用客户端命令
- create [-e][-s] path data
创建普通节点:永久节点
创建临时节点:客户端关闭断开连接时临时节点消失
创建顺序节点:以输入的路径为前缀顺序生成***id
也可以从创建临时顺序节点
- delete path [version] :删除节点 如果节点存在子节点则抛异常
- set path data [version] 设置节点的数据
- get path:获取节点的数据和属性信息
- rmr path:删除节点 可以删除存有子节点的节点
- ls/ls2 path ls:展示节点的子节点 ls2 除了展示节点的子节点还展示当前节点的属性信息
3.节点属性
cZxid:创建节点的事物id
ctime:创建节点的时间
mZxid:修改当前节点数据的最后事物id
mtime:修改当前节点数据的最后时间
pZxid:新增或删除子节点的最后事物id(之后子节点有关,孙子节点无关)
cverison:当前节点的版本号
dataVersion:当前节点的数据版本号
aclVersion:acl的版本号
ephemeraOwner:临时节点的id
dataLength:当前节点的数据长度
numChildren:当前节点的子节点数量