Java客户端使用zookeeper api
2020-01-13 08:27
113 查看
添加zookeeper依赖
<!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper --> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.5.6</version> </dependency>
创建会话
Zookeeper类提供了以下的构造方法,无论使用哪一个构造方法都可以顺利的创建会话。
public ZooKeeper(java.lang.String connectString, int sessionTimeout, org.apache.zookeeper.Watcher watcher) throws java.io.IOException { /* compiled code */ } public ZooKeeper(java.lang.String connectString, int sessionTimeout, org.apache.zookeeper.Watcher watcher, org.apache.zookeeper.client.ZKClientConfig conf) throws java.io.IOException { /* compiled code */ } public ZooKeeper(java.lang.String connectString, int sessionTimeout, org.apache.zookeeper.Watcher watcher, boolean canBeReadOnly, org.apache.zookeeper.client.HostProvider aHostProvider) throws java.io.IOException { /* compiled code */ } public ZooKeeper(java.lang.String connectString, int sessionTimeout, org.apache.zookeeper.Watcher watcher, boolean canBeReadOnly, org.apache.zookeeper.client.HostProvider aHostProvider, org.apache.zookeeper.client.ZKClientConfig clientConfig) throws java.io.IOException { /* compiled code */ } public ZooKeeper(java.lang.String connectString, int sessionTimeout, org.apache.zookeeper.Watcher watcher, boolean canBeReadOnly) throws java.io.IOException { /* compiled code */ } public ZooKeeper(java.lang.String connectString, int sessionTimeout, org.apache.zookeeper.Watcher watcher, boolean canBeReadOnly, org.apache.zookeeper.client.ZKClientConfig conf) throws java.io.IOException { /* compiled code */ } public ZooKeeper(java.lang.String connectString, int sessionTimeout, org.apache.zookeeper.Watcher watcher, long sessionId, byte[] sessionPasswd) throws java.io.IOException { /* compiled code */ } public ZooKeeper(java.lang.String connectString, int sessionTimeout, org.apache.zookeeper.Watcher watcher, long sessionId, byte[] sessionPasswd, boolean canBeReadOnly, org.apache.zookeeper.client.HostProvider aHostProvider) throws java.io.IOException { /* compiled code */ } public ZooKeeper(java.lang.String connectString, int sessionTimeout, org.apache.zookeeper.Watcher watcher, long sessionId, byte[] sessionPasswd, boolean canBeReadOnly, org.apache.zookeeper.client.HostProvider aHostProvider, org.apache.zookeeper.client.ZKClientConfig clientConfig) throws java.io.IOException { /* compiled code */ } public ZooKeeper(java.lang.String connectString, int sessionTimeout, org.apache.zookeeper.Watcher watcher, long sessionId, byte[] sessionPasswd, boolean canBeReadOnly) throws java.io.IOException { /* compiled code */ }
- connectString:指定ZooKeeper服务器列表,有英文状态逗号分开的host:port组成的字符串,例如“192.168.44.130:2181,192.168.44.132:2181,192.168.44.133:2181”。
- sessionTimout:会话超时时间,以“毫秒”为单位的整数,zookeeper客户端和服务端通过心跳检测的方式保持会话的有效性,指定sessionTimout之后,在这一段时间内,没有进行有效的心跳检测,会话就会失效。
- watcher:定义事件接受的Watcher,可以设置为null,表示不监听。
- canBeReadOnly:boolean型的值,默认情况下,zookeeper只要有过半服务器主机失去网络连接,就不会再处理客户端的操作(读或者写),添加该属性则表示,在出现这种情况时,我们依旧可以使用读服务。
- sessionId和sessionPasswd:代表会话ID和秘钥,这两个参数可以确定唯一会话,可以做到复活会话的效果。
创建节点
public java.lang.String create(java.lang.String path, byte[] data, java.util.List<org.apache.zookeeper.data.ACL> acl, org.apache.zookeeper.CreateMode createMode) throws org.apache.zookeeper.KeeperException, java.lang.InterruptedException { /* compiled code */ } public void create(java.lang.String path, byte[] data, java.util.List<org.apache.zookeeper.data.ACL> acl, org.apache.zookeeper.CreateMode createMode, org.apache.zookeeper.AsyncCallback.StringCallback cb, java.lang.Object ctx) { /* compiled code */ }
- path:节点路径
- data[]:节点数据
- acl:acl策略
- createMode:节点类型 持久 RERSISTENT
- 持久序列化 PERSISTENT_SEQUENTIAL
- 临时 EPHEMERAL
- 临时序列化 EPHEMERAL_SEQUENTIAL
删除节点
public void delete(java.lang.String path, int version) throws java.lang.InterruptedException, org.apache.zookeeper.KeeperException { /* compiled code */ } public void delete(java.lang.String path, int version, org.apache.zookeeper.AsyncCallback.VoidCallback cb, java.lang.Object ctx) { /* compiled code */ }
- path:节点路径
- version:数据版本
- cb:异步回调函数,服务器节点创建完毕之后,自动调用该方法
- ctx:可传入一个对象,该对象可以在回调方法中使用
读取数据
读取数据包括对子节点的读取还有节点数据的读取。
getChildren
public java.util.List<java.lang.String> getChildren(java.lang.String path, org.apache.zookeeper.Watcher watcher) throws org.apache.zookeeper.KeeperException, java.lang.InterruptedException { /* compiled code */ } public java.util.List<java.lang.String> getChildren(java.lang.String path, boolean watch) throws org.apache.zookeeper.KeeperException, java.lang.InterruptedException { /* compiled code */ } public void getChildren(java.lang.String path, org.apache.zookeeper.Watcher watcher, org.apache.zookeeper.AsyncCallback.ChildrenCallback cb, java.lang.Object ctx) { /* compiled code */ } public void getChildren(java.lang.String path, boolean watch, org.apache.zookeeper.AsyncCallback.ChildrenCallback cb, java.lang.Object ctx) { /* compiled code */ } public java.util.List<java.lang.String> getChildren(java.lang.String path, org.apache.zookeeper.Watcher watcher, org.apache.zookeeper.data.Stat stat) throws org.apache.zookeeper.KeeperException, java.lang.InterruptedException { /* compiled code */ } public java.util.List<java.lang.String> getChildren(java.lang.String path, boolean watch, org.apache.zookeeper.data.Stat stat) throws org.apache.zookeeper.KeeperException, java.lang.InterruptedException { /* compiled code */ } public void getChildren(java.lang.String path, org.apache.zookeeper.Watcher watcher, org.apache.zookeeper.AsyncCallback.Children2Callback cb, java.lang.Object ctx) { /* compiled code */ } public void getChildren(java.lang.String path, boolean watch, org.apache.zookeeper.AsyncCallback.Children2Callback cb, java.lang.Object ctx) { /* compiled code */ }
- path:节点路径
- watcher:注册的watcher,子节点列表改变时,会触发
- watch:表明是否需要注册一个watcher
- cb:异步回调函数,服务器节点创建完毕之后,自动调用该方法
- ctx:可传入一个对象,该对象可以在回调方法中使用
- stat:指定节点的节点状态信息,服务器会响应新的stat对象替换
getData
public byte[] getData(java.lang.String path, org.apache.zookeeper.Watcher watcher, org.apache.zookeeper.data.Stat stat) throws org.apache.zookeeper.KeeperException, java.lang.InterruptedException { /* compiled code */ } public byte[] getData(java.lang.String path, boolean watch, org.apache.zookeeper.data.Stat stat) throws org.apache.zookeeper.KeeperException, java.lang.InterruptedException { /* compiled code */ } public void getData(java.lang.String path, org.apache.zookeeper.Watcher watcher, org.apache.zookeeper.AsyncCallback.DataCallback cb, java.lang.Object ctx) { /* compiled code */ } public void getData(java.lang.String path, boolean watch, org.apache.zookeeper.AsyncCallback.DataCallback cb, java.lang.Object ctx) { /* compiled code */ }
- path:节点路径
- watcher:注册的watcher,子节点列表改变时,会触发
- watch:表明是否需要注册一个watcher
- cb:异步回调函数,服务器节点创建完毕之后,自动调用该方法
- ctx:可传入一个对象,该对象可以在回调方法中使用
- stat:指定节点的节点状态信息,服务器会响应新的stat对象替换
更新数据
public org.apache.zookeeper.data.Stat setData(java.lang.String path, byte[] data, int version) throws org.apache.zookeeper.KeeperException, java.lang.InterruptedException { /* compiled code */ } public void setData(java.lang.String path, byte[] data, int version, org.apache.zookeeper.AsyncCallback.StatCallback cb, java.lang.Object ctx) { /* compiled code */ }
- path:节点路径
- data[]:节点数据
- version:数据版本
- cb:异步回调函数,服务器节点创建完毕之后,自动调用该方法
- ctx:可传入一个对象,该对象可以在回调方法中使用
检测节点是否存在
public org.apache.zookeeper.data.Stat exists(java.lang.String path, org.apache.zookeeper.Watcher watcher) throws org.apache.zookeeper.KeeperException, java.lang.InterruptedException { /* compiled code */ } public org.apache.zookeeper.data.Stat exists(java.lang.String path, boolean watch) throws org.apache.zookeeper.KeeperException, java.lang.InterruptedException { /* compiled code */ } public void exists(java.lang.String path, org.apache.zookeeper.Watcher watcher, org.apache.zookeeper.AsyncCallback.StatCallback cb, java.lang.Object ctx) { /* compiled code */ } public void exists(java.lang.String path, boolean watch, org.apache.zookeeper.AsyncCallback.StatCallback cb, java.lang.Object ctx) { /* compiled code */ }
- path:节点路径
- watcher:注册的watcher,子节点列表改变时,会触发
- watch:表明是否需要注册一个watcher
- cb:异步回调函数,服务器节点创建完毕之后,自动调用该方法
- ctx:可传入一个对象,该对象可以在回调方法中使用
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- ZooKeeper 学习 (四) ZooKeeper Java客户端API使用
- ZooKeeper之Java客户端API使用—检测节点是否存在
- Zookeeper(四)Java客户端API使用
- 六:ZooKeeper的java客户端api的使用
- ZooKeeper之Java客户端API使用—创建会话。
- zookeeper(二) java客户端api的使用
- Zookeeper的java客户端API使用方法(五)
- Zookeeper的java客户端API使用方法(五)
- zookeeper Java客户端API的使用方法
- ZooKeeper之Java客户端API使用—创建节点。
- 使用Java客户端API操作Zookeeper
- ZooKeeper之Java客户端API使用—权限控制。
- 【ZooKeeper】Java客户端API使用介绍。
- ZooKeeper之Java客户端API使用—读取数据。
- ZooKeeper之Java客户端API使用—更新数据。
- Zookeeper-Java客户端API的基本使用
- ZooKeeper之Java客户端API使用—删除节点。
- 02.ZooKeeper的Java客户端使用
- Zookeeper实践(三)java api 使用
- 【华为】Redis客户端API使用(java)