组成部分java
Client: 是ZooKeeper客户端的一个替代品, 提供了一些底层处理和相关的工具方法
Framework: 用来简化ZooKeeper高级功能的使用, 并增长了一些新的功能, 好比管理到ZooKeeper集群的链接, 重试处理
Recipes: 实现了通用ZooKeeper的recipe, 该组件创建在Framework的基础之上
Utilities:各类ZooKeeper的工具类
Errors: 异常处理, 链接, 恢复等
Extensions: recipe扩展apache
包
curator-recipes 全部典型应用场景。例如:分布式锁服务、集群领导选举、共享计数器、缓存机制、分布式队列等)的抽象封装等。须要依赖client和framework,需设置自动获取依赖。
curator-async jdk8 异步操做
curator-framework Zookeeper API的高层封装,大大简化Zookeeper客户端编程,添加了例如Zookeeper链接管理、重试机制等。
curator-client Zookeeper client的封装,用于取代原生的Zookeeper客户端(ZooKeeper类),提供一些很是有用的客户端特性。
curator-test 包含TestingServer,TestingCluster和一些其余有助于测试的工具。
curator-examples 各类使用Curator特性的例子。
curator-x-discovery 服务注册发现,在SOA /分布式系统中,服务须要相互寻找。curator-x-discovery提供了服务注册,找到特定服务的单个实例,和通知服务实例什么时候更改。
curator-x-discovery-server 服务注册发现管理器,能够和curator-x-discovery 或者非java程序程序使用RESTful Web服务以注册,删除,查询等服务。编程
示例:缓存
@Bean(initMethod = "start", destroyMethod = "close") public CuratorFramework zookeeperClient() { //建立重试策略 RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 5); //建立zookeeper客户端 CuratorFramework client = CuratorFrameworkFactory.builder().connectString("77.11.159.108:2181") //.authorization() //.connectionTimeoutMs() //.waitForShutdownTimeoutMs() //.sessionTimeoutMs(10000) .retryPolicy(retryPolicy) //.namespace("my-project") .build(); // 链接 //client.start(); //关闭链接 //client.close(); return client; }
zookeeper的身份认证有4种方式
(1)world: 它下面只有一个id, 叫anyone, world:anyone表明任何人,zookeeper中对全部人有权限的结点就是属于world:anyone的
(2)auth: 它不须要id, 只要是经过authentication的user都有权限(zookeeper支持经过kerberos来进行authencation, 也支持username/password形式的authentication)
(3)digest: 它对应的id为username:BASE64(SHA1(password)),它须要先经过username:password形式的authentication
(4)ip: 它对应的id为客户机的IP地址,设置的时候能够设置一个ip段,好比ip:192.168.1.0/16, 表示匹配前16个bit的IP段
super: 在这种scheme状况下,对应的id拥有超级权限,能够作任何事情(cdrwa)session
<dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.5.5</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>4.2.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.2.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-client</artifactId> <version>4.2.0</version> </dependency>
参考:异步
https://blog.csdn.net/qq_34021712/article/details/82872311async