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

相關文章
相關標籤/搜索