天天看點

Curator架構的使用第一步:建立連接配接第二步:監聽節點下的資料第三步:實作事件處理

Curator架構的目的是減少使用者的複雜度,畢竟原生的Zookeeper難以使用。

這裡舉一個使用例子。

第一步:建立連接配接

// 以下代碼與192.168.1.101:2181建立了連接配接

CuratorFramework client = CuratorFrameworkFactory.newClient("192.168.1.101:2181", new ExponentialBackoffRetry(1000, 3));

client.start();

這裡的ExponentialBackoffRetry的含義是指數增長的重試間隔。根據這裡的參數,第一次失敗重試休息1000毫秒,第二次重試休息1000毫秒~3000毫秒,第三次失敗重試休息1000毫秒~7000毫秒。這樣指數增長。

第二步:監聽節點下的資料

PathChildrenCache cache = new PathChildrenCache(client, "/test", true);

cache.start();

cache.getListenable().addListener(new MyListener(observer));

這樣就可以監聽test節點下的所有節點了。

第三步:實作事件處理

實作事件處理,隻需實作PathChildrenCacheListener接口即可,示例如下。

public class MyListener implements PathChildrenCacheListener {

  @Override

  public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception {

    switch (event.getType()) {

      case CHILD_ADDED: {

        // 新的節點建立了

        ...

        break;

      }

      case CHILD_UPDATED: {

        // 節點資料更新了

        ...

        break;

      }

      case CHILD_REMOVED: {

        // 節點删掉了

        ...

        break;

      }

    }

  }

}