znode是zooKeeper集合的核心组件,zookeeper API提供了一小组方法使用 zookeeper集合来操纵znode的所有细节。
1.连接到ZooKeeper
ZooKeeper(String connectionString, int sessionTimeout, Watcher watcher)
connectionString : zookeeper主机
sessionTimeout :会话超时(以毫秒为单位)
watcher :实现“监视器”对象。zookeeper集合通过监视器对象返回连接状态。
2.新增节点
// 同步方式
create(String path, byte[] data, List<ACL> acl, CreateMode createMode)
// 异步方式
create(String path, byte[] data, List<ACL> acl, CreateMode createMode, AsyncCallback.StringCallback callBack,Object ctx)
path : znode路径。例如,/node1 /node1/node11
data : 要存储在指定znode路径中的数据
acl : 要创建的节点的访问控制列表。zookeeper API提供了一个静态接口 ZooDefs.Ids 来获取一些基本的acl列表。如ZooDefs.Ids.OPEN_ACL_UNSAFE 返回打开znode的acl列表。
createMode : 节点的类型,这是一个枚举。
callBack:异步回调接口
ctx:传递上下文参数
3.更新节点
// 同步方式
setData(String path, byte[] data, int version)
// 异步方式
setData(String path, byte[] data, int version,AsyncCallback.StatCallback callBack, Object ctx)
path: znode路径
data :要存储在指定znode路径中的数据。
version: znode的当前版本。每当数据更改时,ZooKeeper会更新znode的版本 号。
callBack:异步回调接口
ctx:传递上下文参数
4.删除节点
// 同步方式
delete(String path, int version)
// 异步方式
delete(String path, int version, AsyncCallback.VoidCallback callBack, Object ctx)
path : znode路径。
version : znode的当前版本
callBack:异步回调接口
ctx:传递上下文参数
5.查看节点
// 同步方式
getData(String path, boolean b, Stat stat)
// 异步方式
getData(String path, boolean b,AsyncCallback.DataCallback callBack, Object ctx)
path : znode路径。
b:是否使用连接对象中注册的监视器。
stat : 返回znode的元数据。
callBack:异步回调接口
ctx:传递上下文参数
6.查看子节点
// 同步方式
getChildren(String path, boolean b)
// 异步方式
getChildren(String path, boolean b,AsyncCallback.ChildrenCallback callBack,Object ctx)
path :Znode路径。
b: 是否使用连接对象中注册的监视器。
callBack:异步回调接口。
ctx:传递上下文参数
7.检查节点是否存在
// 同步方法
exists(String path, boolean b)
// 异步方法
exists(String path, boolean b,AsyncCallback.StatCallback callBack,Object ctx)
path:znode路径。
b:是否使用连接对象中注册的监视器。
callBack:异步回调接口。
ctx:传递上下文参数