ZooKeeper中API常用操作
2020-06-07 05:14
183 查看
Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。它使用一组简单的操作原语,使得分布式应用可以实现更高层次的服务——如同步、配置维护、群组和命名管理等。ZK具有高性能、高可用(复制)、有序等特征。下面是常见的zk的API操作。
import org.apache.zookeeper.*; import org.apache.zookeeper.data.Stat; import org.junit.Before; import org.junit.Test; import java.io.IOException; public class zooTest { private String connectString="hadoop102:2181,hadoop103:2181,hadoop104:2181"; // zk服务器连接ip和端口,多个用逗号隔开,其中2181是访问集群的端口号 private int sessionTimeout = 2000; // 设置超时花时间,一般这个时间我们设置为2000ms private ZooKeeper zkClient; // 创建ZooKeeper客户端 @Before public void init() throws IOException { zkClient = new ZooKeeper(connectString, sessionTimeout , new Watcher() { // watcher : 监听器(当被监控的节点发生改变时,zk会通过watcher传递给我们) @Override public void process(WatchedEvent event) { } }); } // 创建子节点 @Test public void create() throws Exception { /* 参数1:要创建的节点的路径; 参数2:节点数据 ; 参数3:节点权限 ;参数4:节点的类型 对于参数2因为源码中是用字节数组,所以要用getBytes # 关于节点的权限一共有5中 1.ANYONE_ID_UNSAFE : 这个Id代表任何人 2.AUTH_IDS : 此Id仅可用于设置ACL。它将被客户机身份验证所用的Id替换。 3.CREATOR_ALL_ACL : 此ACL授予创建者身份验证id的所有权限。 4.OPEN_ACL_UNSAFE : 这是一个完全开放的ACL。 (这个是最常用的) 5.READ_ACL_UNSAFE : 这个ACL给了世界阅读的能力。 # 节点的类型一共有四种: PERSISTENT :持久型节点 PERSISTENT_SEQUENTIAL :序列化的持久型节点 EPHEMERAL :短暂型节点 EPHEMERAL_SEQUENTIAL :序列化的短暂型节点 */ String nodeCreated = zkClient.create("/beijing", "china".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); System.out.println("创建了:"+nodeCreated+"节点"); } //获取指定节点中的信息 @Test public void get() throws KeeperException, InterruptedException { byte[] datas = zkClient.getData("/beijing", false, null); /* stat : 查看哪个版本的数据(节点上可能会保存多个版本的数据) * null: 表示获取最新版本的数据 */ System.out.println(new String(datas)); } //修改节点的数据 @Test public void setdata() throws KeeperException, InterruptedException { zkClient.setData("/beijing","hello".getBytes(),-1); } //删除节点并查看节点是否删除 @Test public void deletenode() throws KeeperException, InterruptedException { zkClient.delete("/xiyou",-1); // -1表示删除所有的版本 Stat flag = zkClient.exists("/xiyou", false); System.out.println(flag == null ? "节点已经被删除" :"节点依旧存在"); } }
相关文章推荐
- ZooKeeper 常用操作API详解
- ZooKeeper 常用操作API详解
- JAVA常用api操作汇总
- Zookeeper服务常用的操作命令
- 常用HDFS的API操作
- 常用地图操作Javascipt API之一
- zookeeper的集群搭建和概念以及操作zookeeperApi
- Zookeeper学习之源生API的使用(java与shell操作zookeeper)。
- ZooKeeper操作(包括命令行和API的使用)
- Zookeeper(七):zookeeper常用API+demo
- JS总结篇--[总结]JS操作DOM常用API详解
- HDFS常用的文件API操作
- python文件操作常用API
- JSTL中c:forEach循环里的值的substr操作及对String操作的常用API
- 注册表操作常用API使用
- 使用Java客户端API操作Zookeeper
- Zookeeper之Shell和API 操作
- Javascript操作DOM常用API总结
- 原生JS实现几个常用DOM操作API实例
- Django ORM操作数据库常用API