Zookeeper学习笔记4-Java的API

8.1 实例

1) 导入对应的zookeeper包
2) 编写代码
在这里插入图片描述

8.2 构造方法

构造方法1

在这里插入图片描述
参数1 connectString:ip+端口号
参数2 sessionTimeout:会话的超时时间,只有在服务器的最小和最大session时间之间才有效
参数3 watcher:监听事件的watcher,此watcher在session生命周期都有效,属于defaultWatcher。

构造方法2

在这里插入图片描述
参数1 connectString:ip+端口号
参数2 sessionTimeout:会话的超时时间,只有在服务器的最小和最大session时间之间才有效
参数3 watcher:监听事件的watcher,此watcher在session生命周期都有效,属于defaultWatcher。
参数4 canBeReadOnly:如果为true,进入只读模式。

构造方法3

在这里插入图片描述
参数1 connectString:ip+端口号
参数2 sessionTimeout:会话的超时时间,只有在服务器的最小和最大session时间之间才有效
参数3 watcher:监听事件的watcher,此watcher在session生命周期都有效,属于defaultWatcher。
参数4 sessionId:会话id,如果传入可以连接到上一次的会话,一般用于客户端重新连接。
参数5 sessionPasswd:会话的密码

构造方法4

在这里插入图片描述
参数1 connectString:ip+端口号
参数2 sessionTimeout:会话的超时时间,只有在服务器的最小和最大session时间之间才有效
参数3 watcher:监听事件的watcher,此watcher在session生命周期都有效,属于defaultWatcher。
参数4 sessionId:会话id,如果传入可以连接到上一次的会话,一般用于客户端重新连接。
参数5 sessionPasswd:会话的密码
参数6 canBeReadOnly:如果为true,进入只读模式。

8.3 操作方法

创建节点create

1)方法1
在这里插入图片描述
参数1 path:节点的路径
参数2 data:数据
参数3 acl:权限,参照章节ACL
参数4 CreateMode:节点持久性,参照章节CreateMode
2)方法2
在这里插入图片描述
参数1 path:节点的路径
参数2 data:数据
参数3 acl:权限,参照章节ACL
参数4 CreateMode:节点持久性,参照章节CreateMode
参数5 cb:采用异步模式,回调函数,在执行请求完成后客户端得到通知。
参数6 ctx:用于传入回调函数的参数。

删除节点delete

参数1 path:节点的路径
参数2 version:对应版本,对应节点属性dataVersion。
更新节点setData
1) 方法1
在这里插入图片描述
参数1 path:节点路径
参数2 data:设置数据
参数3 version:对应版本,对应节点属性dataVersion。
2) 方法2
在这里插入图片描述
参数1 path:节点路径
参数2 data:设置数据
参数3 version:对应版本,对应节点属性dataVersion。
参数4 cb:采用异步模式,回调函数,在执行请求完成后客户端得到通知。
参数5 ctx:用于传入回调函数的参数。

获取节点getData

1) 方法1
在这里插入图片描述
参数1 path:节点路径
参数2 watcher:监听器
参数3 stat:返回节点的Stat数据
2) 方法2
在这里插入图片描述
参数1 path:节点路径
参数2 watcher:是否监听,true代表使用构造函数的watcher来监听。
参数3 stat:返回节点的Stat数据
3) 方法3
在这里插入图片描述
参数1 path:节点路径
参数2 watcher:监听器
参数3 cb:采用异步模式,回调函数,在执行请求完成后客户端得到通知。
参数4 ctx:用于传入回调函数的参数。
4) 方法4
在这里插入图片描述
参数1 path:节点路径
参数2 watcher:是否监听,true代表使用构造函数的watcher来监听。
参数3 cb:采用异步模式,回调函数,在执行请求完成后客户端得到通知。
参数4 ctx:用于传入回调函数的参数。

判断存在exists

1) 方法1
在这里插入图片描述
参数1 path:节点路径
参数2 watcher:监听器
2) 方法2
在这里插入图片描述
参数1 path:节点路径
参数2 watch:是否监听,true代表使用构造函数的watcher来监听。
3) 方法3
在这里插入图片描述
参数1 path:节点路径
参数2 watcher:监听器
参数3 cb:采用异步模式,回调函数,在执行请求完成后客户端得到通知。
参数4 ctx:用于传入回调函数的参数。
4) 方法4
在这里插入图片描述
参数1 path:节点路径
参数2 watch:是否监听,true代表使用构造函数的watcher来监听。
参数3 cb:采用异步模式,回调函数,在执行请求完成后客户端得到通知。
参数4 ctx:用于传入回调函数的参数。

获取子节点getChildren

1) 方法1类(使用监听器)
同步方法:
在这里插入图片描述
异步方法:
在这里插入图片描述
同步方法:使用监听同时返回节点数据
在这里插入图片描述
2) 方法2类(使用默认监听器)
同步方法:
在这里插入图片描述
异步方法:
在这里插入图片描述
同步方法:使用监听同时返回节点数据
在这里插入图片描述
3) 方法3类(使用Children2Callback)
异步方法:使用监听器,使用Children2Callback
在这里插入图片描述
异步方法:使用默认监听器,使用Children2Callback
在这里插入图片描述

获取状态getState

在这里插入图片描述
获取目前客户端的状态,枚举类型States。

8.4 CreateMode

控制会话的类型,如下表:

参数 说明
PERSISTENT 持久化节点
PERSISTENT_SEQUENTIAL 持久化节点,如果当前已存在的节点,顺序自动编号加1创建节点
EPHEMERAL 临时节点, 客户端session超时这类节点就会被自动删除
EPHEMERAL_SEQUENTIAL 临时自动编号节点,如果当前已存在的节点,顺序自动编号加1创建节点

8.5 ACL

在这里插入图片描述
Java中的ACL构造函数有2个参数,分别是perms对应zookeeper中的权限位,di对应zookeeper中的scheme和id。
其中权限位:是一个int的十进制,二进制11111分别表示setacl、delete、create、write、read。比如10101表示有setacl、create、read权限,十六进制0x15

设置权限setACL

同步设置权限
在这里插入图片描述
异步设置权限
在这里插入图片描述

获取权限getACL

同步获取权限
在这里插入图片描述
异步获取权限
在这里插入图片描述

8.6 Stat

java zookeeper 说明
czxid cZixd 数据节点创建时的事务ID
ctime ctime 数据节点创建时的时间
mzxid mZxid 数据节点最后一次更新时的事务ID
mtime mtime 数据节点最后一次更新时的时间
pzxid pZxid 数据节点的子节点列表最后一次被修改(是子节点列表变更,而不是子节点内容变更)时的事务ID
cversion cversion 子节点的版本号
version dataVersion 数据节点的版本号
aversion aclVersion 数据节点的ACL版本号
ephemeralOwner ephemeralOwner 如果节点是临时节点,则表示创建该节点的会话的SessionID;如果节点是持久节点,则该属性值为0
dataLength dataLength 数据内容的长度
numChildren numChildren 数据节点当前的子节点个数

8.7 特殊说明

1) DefaultWatcher与普通Watcher
DefaultWatcher是用于创建客户端zk的时候传进去的,在会话期间都是有效的。普通Watcher是操作的时候传入,一次性监听。
2) Watcher和CallBack
都是作为异步线程的通知。但是Watcher只是操作数据时,作为监听。而CallBack是操作数据完成后获得通知。
3) 参数布尔类型的watch
布尔类型的watch,只是默认使用zk构造函数传进去的watch。

猜你喜欢

转载自blog.csdn.net/linwu_2006_2006/article/details/95065613