Zookeeper(String connectString,int sessionTimeout,Watcher watcher);Zookeeper(String connectString,int sessionTimeout,Watcher watcher,boolean canBeReadOnly);Zookeeper(String connectString,int sessionTimeout,Watcher watcher,long sessionId,byte[] sessionPassword);Zookeeper(String connectString,int sessionTimeout,Watcher watcher,long sessionId,byte[] sessionPassword,boolean canBeReadOnly);
参数名称 | 说明 |
connectString | Zookeeper服务器列表,由host:port字符串组成。如:192.168.1.2:2181,192.168.1.3:2181。也可以指定到具体目录,如:192.168.1.2 :2181/book |
sessionTimeout | 会话超时时间(毫秒) |
watcher | Watcher事件通知处理,可以设置为null,表示不设置watcher事件 |
canBeReadOnly | 标识当前会话是否支持”read-only“(只读模式),为服务失去过半服务器链接还能够提供只读服务 |
sessionId | 会话ID,通过 getSessionId()接口获取,实现会话复用和恢复 |
sessionPassword | 会话秘钥,通过getSessionPasswd()接口获取,和sessionId配合使用。 |
Stringcreate(finalString path,byte data[],List<ACL> acl,CreateMode createMode);Stringcreate(finalString path,byte data[],List<ACL> acl,CreateMode createMode,StringCallback cb,Object ctx);
参数名称 | 说明 |
path | 创建数据节点的节点路径,如:/book/zookeeper |
data[] | 创建节点的内容 |
createMode | 节点类型:持久(PERSISTENT),持久顺序(PERSISTENT_SEQUENTIAL),临时(EPHEMERAL),临时顺序(EPHEMERAL_SEQUENTIAL) |
cb | 注册异步回调函数,需要实现StringCallback接口 |
ctx | 上下文信息 |
删除时候,只能删除叶子节点。如果删除节点存在至少一个子节点,那么该节点无法被直接删除,必须先删除掉其所有的子节点。
publicvoiddelete(finalString path,int version);publicvoiddelete(finalString path,int version,VoidCallback cb,Object ctx);
参数名称 | 说明 |
path | 需要删除的数据节点路径 |
version | 指定节点的数据版本 |
cb | 注册的异步回调函数 |
ctx | 上下文信息 |
List<String>getChildren(finalString path,Watcher watcher);List<String>getChildren(finalString path,boolean watch);List<String>getChildren(finalString path,Watcher watcher,Stat stat);List<String>getChildren(finalString path,boolean watch,Stat stat);voidgetChildren(finalString path,Watcher watcher,ChildrenCallback cb,Object ctx);voidgetChildren(finalString path,boolean watch,ChildrenCallback cb,Object ctx);voidgetChildren(finalString path,Watcher watcher,Children2Callback cb,Object ctx);voidgetChildren(finalString path,boolean watch,Children2Callback cb,Object ctx);
参数名称 | 说明 |
path | 指定数据节点的节点路径 |
watcher | 注册Watcher,一旦本次子节点获取之后,子节点列表发生变更的话,那么就会向客户端发送通知,可以传入null |
watch | 是否注册默认的Watcher事件 |
cb | 异步回调函数 |
ctx | 上下文信息 |
stat | 指定数据节点的节点状态信息,场景是传入旧的stat,服务器会返回最新的stat信息 |
byte[]getData(finalString path,Watcher watcher,Stat stat);byte[]getData(String path,boolean watch,Stat stat);voidgetData(finalString path,Watcher watcher,DataCallback cb,Stat stat);voidgetData(String path,boolean watch,DataCallback cb,Stat stat);
参数名称 | 说明 |
path | 指定数据节点的节点路径 |
watcher | 注册Watcher,一旦之后节点内容变更,那么就会向客户端发送通知,可以传入null |
watch | 是否注册默认的Watcher事件 |
cb | 异步回调函数 |
ctx | 上下文信息 |
stat | 指定数据节点的节点状态信息,场景是传入旧的stat,服务器会返回最新的stat信息 |
StatsetData(finalString path,byte data[],int version);voidsetData(finalString path,byte data[],int version,StatCallback cb,Object ctx);
参数名称 | 说明 |
path | 指定数据节点的节点路径 |
data[] | 更新内容,字节数组 |
version | 指定节点中数据版本 |
cb | 异步回调函数 |
ctx | 上下文信息 |
Statexists(finalString path,Watcher watcher);Statexists(String path,boolean watch);voidgetData(finalString path,Watcher watcher,StatCallback cb,Object ctx);voidgetData(String path,boolean watch,StatCallback cb,Object ctx);
参数名称 | 说明 |
path | 指定数据节点的节点路径 |
watcher | 注册Watcher,监听:节点创建、删除、更新,可以传入null |
watch | 是否注册默认的Watcher事件 |
cb | 异步回调函数 |
ctx | 上下文信息 |
通过接口 addAuthInfo(String scheme, byte[] auth),实现权限控制。
参数名称 | 说明 |
scheme | 权限控制模式:world, auth, digest, ip, super |
auth | 具体的权限信息 |
zookeeper.addAuthInfo("digest","username:passowrd".getBytes()); zookeeper.crate("/book/zookeeper","学习".getBytes(),Ids.CREATOR_ALL_ACL,CreateMode.EPHEMERAL);
- ZkClient
框架依赖
<dependencies><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>${zookeeper.version}</version></dependency><dependency><groupId>com.github.sgroschupf</groupId><artifactId>zkclient</artifactId><version>${zkclient.version}</version></dependency></dependencies>