Watcher部分
- 这种方式只能监听一次,监听完了需要重新注册watcher
client.getChildren().usingWatcher(new AA2.Watcher()).forPath("/b");
- PathChildrenCache 只能监听本层以及第一层子层(监听/b 只能监听到/b/c,不能监听到/b/c/d),且每次生成时,假如节点存在,会被重复通知一次节点created事件
PathChildrenCache childrenCache2 = new PathChildrenCache(client, "/b", true); childrenCache2.start(); childrenCache2.getListenable().addListener(new PathChildrenCacheListener() { @Override public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception { System.out.println("cache事件:" + event.getType()+" "+event.getData().getPath()); } });
其中event.getData() 有可能为null
- TreeCache可以监听节点下所有子节点的变更
ACL部分
- ACL并无递归机制,任何一个znode创建后,都需要单独设置ACL,无法继承父节点的ACL设置
- 程序对节点设置ACL时必须先
DigestAuthenticationProvider.generateDigest("spjich:spjich")
获取加密后的秘钥
spjich:TyD9qsQm0ojLLJ8B14A3R2wYuKU=
然后再
ACL aclRoot = new ACL(ZooDefs.Perms.ALL, new Id("digest", "spjich:TyD9qsQm0ojLLJ8B14A3R2wYuKU=")); List<ACL> aclList = new ArrayList<ACL>(); aclList.add(aclRoot); client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT) .withACL(aclList) .forPath("/b/c/d");
而客户端想访问被ACL控制的节点时必须先进行“身份验证”,可以通过如下设置进行(注意:加密时用的是生成的秘钥,登录时用的是原始密码)
CuratorFramework client = CuratorFrameworkFactory.builder() .connectString("172.171.51.151:2181") .authorization("digest","spjich:spjich".getBytes()) .retryPolicy(new RetryNTimes(3, 1000)) .connectionTimeoutMs(5000).build(); client.start();
- 节点的Listener事件受节点的ACL权限影响,如果Listener希望接收到某节点的事件,则必须有该节点的ACL权限
待补充.....................
相关推荐
zookeeper通过使用curator实现分布式锁来保证数据的一致性。 zookeeper通过使用curator实现分布式锁来保证数据的一致性。
zookeeper 使用 Curator 进行增、删、改、查、监听、分布式锁
Zookeeper客户端Curator Framework示例代码,博客详解链接:https://blog.csdn.net/u010889616/article/details/80209629
赠送jar包:curator-client-4.3.0.jar; 赠送原API文档:curator-client-4.3.0-javadoc.jar; 赠送源代码:curator-client-4.3.0-sources.jar; 赠送Maven依赖信息文件:curator-client-4.3.0.pom; 包含翻译后的API...
赠送jar包:curator-framework-2.6.0.jar; 赠送原API文档:curator-framework-2.6.0-javadoc.jar; 赠送源代码:curator-framework-2.6.0-sources.jar; 赠送Maven依赖信息文件:curator-framework-2.6.0.pom; ...
赠送jar包:curator-client-2.7.1.jar; 赠送原API文档:curator-client-2.7.1-javadoc.jar; 赠送源代码:curator-client-2.7.1-sources.jar; 赠送Maven依赖信息文件:curator-client-2.7.1.pom; 包含翻译后的API...
zookeeper客户端curator操作示例
赠送jar包:curator-framework-4.0.1.jar; 赠送原API文档:curator-framework-4.0.1-javadoc.jar; 赠送源代码:curator-framework-4.0.1-sources.jar; 赠送Maven依赖信息文件:curator-framework-4.0.1.pom; ...
赠送jar包:curator-recipes-2.6.0.jar; 赠送原API文档:curator-recipes-2.6.0-javadoc.jar; 赠送源代码:curator-recipes-2.6.0-sources.jar; 赠送Maven依赖信息文件:curator-recipes-2.6.0.pom; 包含翻译后...
赠送jar包:curator-client-4.0.1.jar; 赠送原API文档:curator-client-4.0.1-javadoc.jar; 赠送源代码:curator-client-4.0.1-sources.jar; 赠送Maven依赖信息文件:curator-client-4.0.1.pom; 包含翻译后的API...
赠送jar包:curator-client-2.7.1.jar; 赠送原API文档:curator-client-2.7.1-javadoc.jar; 赠送源代码:curator-client-2.7.1-sources.jar; 赠送Maven依赖信息文件:curator-client-2.7.1.pom; 包含翻译后的API...
赠送jar包:curator-client-2.6.0.jar; 赠送原API文档:curator-client-2.6.0-javadoc.jar; 赠送源代码:curator-client-2.6.0-sources.jar; 赠送Maven依赖信息文件:curator-client-2.6.0.pom; 包含翻译后的API...
客户端是Curator Framework,是Apache的项目,它主要的功能是为ZK的客户端使用提供了高可用的封装。在Curator Framework基础上封装的curator-recipes,实现了很多经典场景。比如:集群管理(Leader选举)、共享锁、...
赠送jar包:curator-framework-4.3.0.jar; 赠送原API文档:curator-framework-4.3.0-javadoc.jar; 赠送源代码:curator-framework-4.3.0-sources.jar; 赠送Maven依赖信息文件:curator-framework-4.3.0.pom; ...
Curator的JAR包,应用于Zookeeper集群协调组件开发
使用apache curator-test单元测试zookeeper
curator zookeeper 3.4.6 2.9.1
zookeeper 客户端 curator 源文件
赠送jar包:curator-framework-2.6.0.jar; 赠送原API文档:curator-framework-2.6.0-javadoc.jar; 赠送源代码:curator-framework-2.6.0-sources.jar; 赠送Maven依赖信息文件:curator-framework-2.6.0.pom; ...
curator zookeeper 3.4.6 2.9.1