zookeeper - curator

组成部分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

相关文章
相关标签/搜索