都有什么公司需要网站建设,做盗链电影网站怎么样,wordpress当前分类文章,广告设计软件coreldrawCurator是 Netflix公司开源的一套ZooKeeper客户端框架。和ZkClient一样#xff0c;Curator解决了很多ZooKeeper客户端非常底层的细节开发工作#xff0c;包括连接重连、反复注册Watcher和 NodeExistsException异常等#xff0c;目前已经成为了Apache的顶级项目,是全世界范围…Curator是 Netflix公司开源的一套ZooKeeper客户端框架。和ZkClient一样Curator解决了很多ZooKeeper客户端非常底层的细节开发工作包括连接重连、反复注册Watcher和 NodeExistsException异常等目前已经成为了Apache的顶级项目,是全世界范围内使用最广泛的ZooKeeper客户端之一。 
Curator包 
curator-framework对zookeeper的底层api的一些封装。curator-client提供一些客户端的操作例如重试策略等。curator-recipes封装了一些高级特性如Cache事件监听、选举、分布式锁、分布式计数器、分布式Barrier等。 
添加Maven依赖 
dependencygroupIdorg.apache.curator/groupIdartifactIdcurator-recipes/artifactIdversion4.2.0/version
/dependency创建会话 String connStr  192.168.18.128:2181;CuratorFramework cur CuratorFrameworkFactory.builder().connectString(connStr).connectionTimeoutMs(5000).retryPolicy(new ExponentialBackoffRetry(1000,3)).build();cur.start();//连接创建节点 
cur.create().withMode(CreateMode.PERSISTENT).forPath(/root, baizhan.getBytes());删除数据节点 
cur.delete().forPath(/root);注意 
此方法只能删除叶子节点否则会抛出异常。 
删除一个节点并且递归删除其所有的子节点 
cur.delete().deletingChildrenIfNeeded().forPath(/root);删除一个节点强制指定版本进行删除 
cur.delete().withVersion(10086).forPath(path);删除一个节点强制保证删除 
cur.delete().guaranteed().forPath(path);注意: guaranteed()接口是一个保障措施只要客户端会话有效那么Curator会在后台持续进行删除操作直到删除节点成功。 注意上面的多个流式接口是可以自由组合的例如 
cur.delete().guaranteed().deletingChildrenIfNeeded().withVersion(10086).forPath(/root);读取数据节点数据 
读取一个节点的数据内容 
cur.getData().forPath(/root); 
注意: 
此方法返的返回值是byte[ ]; 
读取一个节点的数据内容同时获取到该节点的stat 
Stat stat  new Stat();
client.getData().storingStatIn(stat).forPath(path);更新数据节点数据 
更新一个节点的数据内容 
client.setData().forPath(path,data.getBytes());注意 
该接口会返回一个Stat实例; 
更新一个节点的数据内容强制指定版本进行更新 
client.setData().withVersion(10086).forPath(path,data.getBytes());检查节点是否存在 
client.checkExists().forPath(path);注意 该方法返回一个Stat实例用于检查ZNode是否存在的操作. 可以调用额外的方法(监控或者后台处理)并在最后调用forPath()指定要操作的ZNode 获取某个节点的所有子节点路径 
client.getChildren().forPath(path);监听机制 
永久都会存在, 减少了之前监听器重复注册的问题