`
spjich
  • 浏览: 95119 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Curator使用琐事杂记

阅读更多

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权限

 

 

 

 

 

 

 

 

 

                                                                                                               待补充.....................

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Curator的JAR包

    Curator的JAR包则包含了一系列的API和工具,用于简化ZooKeeper的使用,尤其在集群协调组件的开发中起着关键作用。 `curator-framework-3.0.0.jar`是Curator的核心框架库,包含了对ZooKeeper的主要操作接口和类。这...

    zookeeper 使用 Curator 示例监听、分布式锁

    Curator 是 Apache ZooKeeper 的一个客户端库,提供了丰富的工具和模式,简化了 ZooKeeper 的使用。本示例将详细介绍如何利用 Curator 在 ZooKeeper 上进行数据操作以及实现分布式锁。 一、ZooKeeper 与 Curator 的...

    zk使用curator实现分布式锁

    在分布式系统中,确保数据的一致性和正确性是至关重要的,而ZooKeeper与Curator的结合使用就是解决这一问题的有效方案。ZooKeeper是一个高度可靠的分布式协调服务,它提供了诸如分布式锁、队列和配置管理等核心功能...

    Zookeeper客户端Curator Framework使用代码

    本篇文章将深入探讨Curator Framework的主要功能、使用方法以及示例代码。 1. **Zookeeper基础** Zookeeper是一个分布式协调服务,常用于管理配置信息、命名服务、集群状态同步、分布式锁等场景。它采用的是主从...

    zookeeper客户端curator操作示例

    而Apache Curator是Facebook开源的一个ZooKeeper客户端库,它提供了更高级别的API,简化了ZooKeeper的使用,并增加了诸如连接管理、重试策略、事务操作等功能。 在Java开发中,Curator是使用ZooKeeper最常用且推荐...

    curator_zookeeper需要的jar

    最后,`guava-17.0.jar`是Google Guava库,提供了大量的Java实用工具类,如集合、并发、缓存、I/O等,Curator使用Guava来增强其功能,如使用Guava的缓存来缓存Zookeeper节点的数据。 总的来说,这些JAR文件构建了一...

    curator zookeeper 3.4.6 2.9.1

    而Curator则是Zookeeper的一个客户端库,为开发者提供了更高级别的抽象和工具,简化了Zookeeper的使用。 Zookeeper 3.4.6是其稳定且广泛采用的一个版本,它提供了丰富的API和强大的一致性模型。在这个版本中,...

    项目加入zookeeper的依赖包(Curator框架)

    总的来说,Curator框架极大地简化了Zookeeper的使用,提供了丰富的功能和易于使用的API,使开发者能够更专注于业务逻辑而不是底层的协调细节。在项目中集成这些依赖包,能够有效地支持分布式环境下的协调需求。

    curator-client-4.3.0-API文档-中英对照版.zip

    赠送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...

    curator-framework-2.6.0-API文档-中文版.zip

    赠送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-client-2.7.1-API文档-中文版.zip

    赠送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...

    curator-framework-4.0.1-API文档-中英对照版.zip

    赠送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; ...

    zookeeper学习之三(Curator客户端)

    Curator客户端是Apache Curator框架的一部分,该框架为开发人员提供了一系列高级API和工具,用于处理常见的ZooKeeper用例,降低了使用ZooKeeper的复杂性。以下是对Curator客户端及其主要特性的详细阐述: 1. **连接...

    zookeeper Java api - curator 5.6.0

    Apache Curator 是一个高度封装的 ZooKeeper Java 客户端库,它简化了与 ZooKeeper 交互的复杂性,提供了更高级别的抽象和实用工具。...使用 Curator 5.6.0,你可以更加便捷地实现分布式协调、配置管理和一致性服务。

    curator-recipes-2.6.0-API文档-中文版.zip

    赠送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; 包含翻译后...

    apache-curator-3.2.0

    Apache Curator 是一个高度抽象和完善的客户端库,用于简化 Apache ZooKeeper 的使用。ZooKeeper 是一个分布式的、开放源代码的服务,它提供一个高可用的、高性能的分布式协调服务,广泛应用于分布式系统中,如...

    curator-client-2.7.1-API文档-中英对照版.zip

    赠送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...

    curator-client-2.6.0-API文档-中文版.zip

    赠送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...

    zk客户端curator2.11

    客户端是Curator Framework,是Apache的项目,它主要的功能是为ZK的客户端使用提供了高可用的封装。在Curator Framework基础上封装的curator-recipes,实现了很多经典场景。比如:集群管理(Leader选举)、共享锁、...

    curator-framework-4.3.0-API文档-中英对照版.zip

    赠送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; ...

Global site tag (gtag.js) - Google Analytics