1.集群环境搭建 - 启动
修改zooo.cfg 配置文件 如下
为了方便,我这搭建的只是一个伪集群环境
2888 表示 心跳检测端口
3888 表示 领导选举,用于投票的端口
2.使用命令行客户端连接Zookeeper
$ bin/zkCli.sh 会出现以下信息
表示成功连接, 若是想连接别的服务器上的zookeeper 则 使用如下命令:
$ bin/zkCli.sh -server <ip>:<port>
好了,我们来通过命令行来操作zookeeper吧。
我不知道命令啊???? 没关系, 叫help(帮助)
以上命令大多数是针对ZNode节点进行操作
1.列出子节点
命令格式: ls path [watch]
那么我们先列出根节点的所有子节点:
默认根节点下有一个 zookeeper的子节点,它作为Zookeeper的保留节点,我们一般不使用它
另外我们还可以使用 ls2
来看看
cZxid : 表示节点创建时的事务ID (每个客户点的请求都会形成一个事务)
ctime : 表示节点创建的时间
mZxid : 表示最后一次修改节点的事务ID
mtime : 最后一次修改节点的时间
pZxid : 表示最后一次修改父节点的事务ID
cversion : 表示子节点的版本号
dataVersion : 表示节点所包含数据的版本号(每个数据都有自己的版本,它与节点的版本不一样)
aclVersion : 表示节点的ACL 权限版本号(权限也有自己的版本)
ephemeralOwner : 表示临时会话的ID
dataLength : 表示节点所包含的数据内容长度
numChildren : 表示当前节点的子节点数
以上信息都称为 Stat(统计)
2.判断子节点是否存在
判断foo 节点是否存在
stat /foo
可以看出 该节点不存在
3.创建节点
create [-s] [-e] path data acl
-s 用于指定该节点是否为顺序节点
-c 用于指定该节点是否为临时节点
最后一个acl 用于权限控制 zookeeper 内部提供了一个Access Contronl List(访问权限控制列表,简称ACL),默认情况下不做任何权限控制.
我们来创建一个 hello的节点 数据内容为 hello world
创建成功!
4.获取节点
get path [watch]
即可获得 该节点的 Stat信息
5.更新节点信息
set path data [version]
大家可以看到Stat信息产生了变化 版本从0变成了1 其它数据也产生了变化
6.删除节点
delete path [version]
该命令执行后不会有任何提示,注意只有该节点没有子节点时才能删除成功,否则将给出"Node not empty"
但是我们可以通过 rmr path 一次性删除该节点及下面的所有子节点
下次继续分享 通过java 来操作Zookeeper!