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

javazookeeper说明
czxidcZixd数据节点创建时的事务ID
ctimectime数据节点创建时的时间
mzxidmZxid数据节点最后一次更新时的事务ID
mtimemtime数据节点最后一次更新时的时间
pzxidpZxid数据节点的子节点列表最后一次被修改(是子节点列表变更,而不是子节点内容变更)时的事务ID
cversioncversion子节点的版本号
versiondataVersion数据节点的版本号
aversionaclVersion数据节点的ACL版本号
ephemeralOwnerephemeralOwner如果节点是临时节点,则表示创建该节点的会话的SessionID;如果节点是持久节点,则该属性值为0
dataLengthdataLength数据内容的长度
numChildrennumChildren数据节点当前的子节点个数

8.7 特殊说明

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值