栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Zookeeper采用Java客户端API

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Zookeeper采用Java客户端API

文章目录
  • 创建会话
  • 创建节点
  • 删除节点
  • 获取子节点列表
  • 获取数据
  • 更新数据
  • 获取数据
  • 权限控制
  • 开源框架


创建会话
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);

参数名称说明
connectStringZookeeper服务器列表,由host:port字符串组成。如:192.168.1.2:2181,192.168.1.3:2181。也可以指定到具体目录,如:192.168.1.2 :2181/book
sessionTimeout会话超时时间(毫秒)
watcherWatcher事件通知处理,可以设置为null,表示不设置watcher事件
canBeReadOnly标识当前会话是否支持”read-only“(只读模式),为服务失去过半服务器链接还能够提供只读服务
sessionId会话ID,通过 getSessionId()接口获取,实现会话复用和恢复
sessionPassword会话秘钥,通过getSessionPasswd()接口获取,和sessionId配合使用。
创建节点
String create(final String path, byte data[], List acl, CreateMode createMode);

String create(final String path, byte data[], List acl, CreateMode createMode, StringCallback cb, Object ctx);
参数名称说明
path创建数据节点的节点路径,如:/book/zookeeper
data[]创建节点的内容
createMode节点类型:持久(PERSISTENT),持久顺序(PERSISTENT_SEQUENTIAL),临时(EPHEMERAL),临时顺序(EPHEMERAL_SEQUENTIAL)
cb注册异步回调函数,需要实现StringCallback接口
ctx上下文信息
删除节点

删除时候,只能删除叶子节点。如果删除节点存在至少一个子节点,那么该节点无法被直接删除,必须先删除掉其所有的子节点。

public void delete(final String path, int version);

public void delete(final String path, int version, VoidCallback cb, Object ctx);
参数名称说明
path需要删除的数据节点路径
version指定节点的数据版本
cb注册的异步回调函数
ctx上下文信息
获取子节点列表
List getChildren(final String path, Watcher watcher);

List getChildren(final String path, boolean watch);

List getChildren(final String path, Watcher watcher, Stat stat);

List getChildren(final String path, boolean watch, Stat stat);

void getChildren(final String path, Watcher watcher, ChildrenCallback cb, Object ctx);

void getChildren(final String path, boolean watch, ChildrenCallback cb, Object ctx);

void getChildren(final String path, Watcher watcher, Children2Callback cb, Object ctx);

void getChildren(final String path, boolean watch, Children2Callback cb, Object ctx);

参数名称说明
path指定数据节点的节点路径
watcher注册Watcher,一旦本次子节点获取之后,子节点列表发生变更的话,那么就会向客户端发送通知,可以传入null
watch是否注册默认的Watcher事件
cb异步回调函数
ctx上下文信息
stat指定数据节点的节点状态信息,场景是传入旧的stat,服务器会返回最新的stat信息
获取数据
byte[] getData(final String path, Watcher watcher, Stat stat);

byte[] getData(String path, boolean watch, Stat stat);

void getData(final String path, Watcher watcher, DataCallback cb, Stat stat);

void getData(String path, boolean watch, DataCallback cb, Stat stat);
参数名称说明
path指定数据节点的节点路径
watcher注册Watcher,一旦之后节点内容变更,那么就会向客户端发送通知,可以传入null
watch是否注册默认的Watcher事件
cb异步回调函数
ctx上下文信息
stat指定数据节点的节点状态信息,场景是传入旧的stat,服务器会返回最新的stat信息
更新数据
Stat setData(final String path, byte data[], int version);

void setData(final String path, byte data[], int version, StatCallback cb, Object ctx);
参数名称说明
path指定数据节点的节点路径
data[]更新内容,字节数组
version指定节点中数据版本
cb异步回调函数
ctx上下文信息
获取数据
Stat exists(final String path, Watcher watcher);

Stat exists(String path, boolean watch);

void getData(final String path, Watcher watcher, StatCallback cb, Object ctx);

void getData(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);
开源框架
  1. ZkClient
    框架依赖

   
   	  org.apache.zookeeper
   	  zookeeper
   	  ${zookeeper.version}
   
   
   	  com.github.sgroschupf
   	  zkclient
   	  ${zkclient.version}
   


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1040790.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号