znode是zooKeeper集合的核心組件,zookeeper API提供了一小組方法使用 zookeeper集合來操縱znode的所有細節(jié)。
1.連接到ZooKeeper
ZooKeeper(String connectionString, int sessionTimeout, Watcher watcher)
connectionString : zookeeper主機
sessionTimeout :會話超時(以毫秒為單位)
watcher :實現(xiàn)“監(jiān)視器”對象。zookeeper集合通過監(jiān)視器對象返回連接狀態(tài)。
2.新增節(jié)點
// 同步方式
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路徑中的數(shù)據(jù)
acl : 要創(chuàng)建的節(jié)點的訪問控制列表。zookeeper API提供了一個靜態(tài)接口 ZooDefs.Ids 來獲取一些基本的acl列表。如ZooDefs.Ids.OPEN_ACL_UNSAFE 返回打開znode的acl列表。
createMode : 節(jié)點的類型,這是一個枚舉。
callBack:異步回調(diào)接口
ctx:傳遞上下文參數(shù)
3.更新節(jié)點
// 同步方式
setData(String path, byte[] data, int version)
// 異步方式
setData(String path, byte[] data, int version,AsyncCallback.StatCallback callBack, Object ctx)
path: znode路徑
data :要存儲在指定znode路徑中的數(shù)據(jù)。
version: znode的當前版本。每當數(shù)據(jù)更改時,ZooKeeper會更新znode的版本 號。
callBack:異步回調(diào)接口
ctx:傳遞上下文參數(shù)
4.刪除節(jié)點
// 同步方式
delete(String path, int version)
// 異步方式
delete(String path, int version, AsyncCallback.VoidCallback callBack, Object ctx)
path : znode路徑。
version : znode的當前版本
callBack:異步回調(diào)接口
ctx:傳遞上下文參數(shù)
5.查看節(jié)點
// 同步方式
getData(String path, boolean b, Stat stat)
// 異步方式
getData(String path, boolean b,AsyncCallback.DataCallback callBack, Object ctx)
path : znode路徑。
b:是否使用連接對象中注冊的監(jiān)視器。
stat : 返回znode的元數(shù)據(jù)。
callBack:異步回調(diào)接口
ctx:傳遞上下文參數(shù)
6.查看子節(jié)點
// 同步方式
getChildren(String path, boolean b)
// 異步方式
getChildren(String path, boolean b,AsyncCallback.ChildrenCallback callBack,Object ctx)
path :Znode路徑。
b: 是否使用連接對象中注冊的監(jiān)視器。
callBack:異步回調(diào)接口。
ctx:傳遞上下文參數(shù)
7.檢查節(jié)點是否存在
// 同步方法
exists(String path, boolean b)
// 異步方法
exists(String path, boolean b,AsyncCallback.StatCallback callBack,Object ctx)
path:znode路徑。
b:是否使用連接對象中注冊的監(jiān)視器。
callBack:異步回調(diào)接口。
ctx:傳遞上下文參數(shù)