首页 技术 正文
技术 2022年11月9日
0 收藏 745 点赞 2,296 浏览 3278 个字

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[] sessionPasswd) Zookeeper(String connectString,int sessionTimeout,Watcher watcher,long sessionId,byte[] sessionPasswd,boolean canBeReadOnly) 参数说明: connectString — host:port[,host:port][basePath] 指定的服务器列表,多个host:port之间用英文逗号分隔。还可以可选择的指定一个基路径,如果指定了一个基路径,则所有后续操作基于这个及路径进行。 sessionTimeOut — 会话超时时间。以毫秒为单位。客户端和服务器端之间的连接通过心跳包进行维系,如果心跳包超过这个指定时间则认为会话超时失效。 watcher — 指定默认观察者。如果为null表示不需要观察者。 canBeReadOnly — 是否支持只读服务。只当一个服务器失去过半连接后不能再进行写入操作时,是否继续支持读取操作。略 sessionId、SessionPassword — 会话编号 会话密码,用来实现会话恢复。  **注意,整个创建会话的过程是异步的,构造方法会在初始化连接后即返回,并不代表真正建立好了一个会话,此时会话处于”CONNECTING”状态。 **当会话真正创建起来后,服务器会发送事件通知给客户端,只有客户端获取到这个通知后,会话才真正建立。  代码: //TODO  创建节点: String create(final String path,byte data[],List<ACL> acl,CreateMode createMode);//同步方式创建 void create(final String path,byte data[],List<ACL> acl,CreateMode createMode,StringCallback cb,Object ctx);//异步方式创建 参数说明: path 要创建的数据节点的路径 data [] 节点创建时初始数据内容 acl 节点acl安全策略 createMode 创建模式 PERSISTENT 持久 PERSISTENT_SEQUENTIAL 持久顺序 EPHEMERAL 临时 EPHEMERAL_SEQUENTIAL 临时顺序 cb 回调接口 ctx 传递对象,用来在回调方法中使用 通常是个上下文对象  **注意:不支持递归创建,即不能在无父节点的情况下创建出子节点 **尝试创建已经存在的节点将失败并抛出异常 **在不需要进行任何权限控制时,只需传入Ids.OPEN_ACL_UNSAFE即可  代码: //TODO  删除节点: public void delete(final String path,int version) public void delete(final String path,int version,VoidCallback cb,Object ctx)  **注意:无法删除存在子节点的节点,即如果要删除一个节点,必须要先删除其所有子节点  读取数据: getChildren //同步方式 List<String> getChildren(final String path,Watcher watcher) List<String> getChildren(String path,boolean watch) List<String> getChildren(final String path,Watcher watcher,Stat stat) List<String> getChildren(String path,boolean watch,Stat stat) //异步方式 void getChildred(final String path,Watcher watcher,ChildrenCallback cb,Object ctx) void getChildred(String path,boolean watch,ChildrednCallback cb,Object ctx) void getChildred(final String path,Watcher watcher,Children2Callback cb,Object ctx) void getChildred(String path,boolean watch,Children2Callback cb,Object ctx)  参数说明: path 要创建的数据节点的路径 watcher 观察者,一旦在本子节点获取之后,子节点列表发生变更,服务器端向客户端发送消息,触发watcher中的回调。注意,仅仅是通知而已,如果需要新的子节点列表,需要自己再次去获取。允许传入null。 watch 表明是否需要注册一个Watcher。为true则通知默认到默认watcher,如果为false则不使用 cb 回掉函数 ctx 上下文对象 stat 指定数据节点的状态信息。用法是在接口中传入一个旧的stat变量,该stat变量会在方法执行过程中,被来自服务端响应的新stat对象替换。  getData //同步方式 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,Object ctx) void getData(String path,boolean watch, DataCallback cb,Object ctx)  *可以通过注册Watcher进行监听,一旦该节点数据被更新会通知客户端  更新数据 //同步方式 Stat setData(final String path,byte data[],int version)//version可以传入-1,表明要基于最新版本进行更新操作 //异步方式 void setData(final String path,byte data[],int version,StatCallback cb,Object ctx)  检查节点是否存在 //同步方式 public Stat exists(final String path,Watcher watcher) public Stat exists(String path,boolean watch) //异步方式 public Stat exists(final String path,Watcher watcher,StatCallback cb,Object ctx) public Stat exists(String path,boolean watch,StatCallback cb,Object ctx)  *可以通过注册Watcher进行监听,一旦节点被创建、删除、数据被更新都会通知客户端  zookeeper权限控制: addAuthInfo(String schema,byte [] auth) 参数说明; schema 权限模式,可以是world auth digest ip super,我们使用digest byte[] auth 权限控制标识,由”foo:123″.getByte()方式组成,后续操作只有auth值相同才可以进行  **注意删除操作,如果在增加节点时指定了权限,则对于删除操作,认为权限加在了子节点上,删除当前结点不需要权限,删除子节点需要权限。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,497
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,910
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,744
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,498
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,135
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,298