Zookeeper系列(二):Java API開發

ZooKeeper還爲客戶端提供了Java API編程接口的方式。API接口主要是ZooKeeper類中的方法,下面列舉幾個經常使用的客戶端操做的Java代碼示例。node

一、create編程

建立ZooKeeper路徑節點,參數需提供路徑名稱和路徑關聯數據。對應create命令。服務器

示例代碼以下:session

ZooKeeper zk= new ZooKeeper("127.0.0.1",SESSION_TIME,this); zk.create("/test","Hello".getBytes(), null, CreateMode.PERSISTENT);  this

二、刪除spa

刪除路徑,對應delete命令。接口

ZooKeeper zk= new ZooKeeper("127.0.0.1",SESSION_TIME,this);事件

zk.delete("/test", -1); ci

三、getDataget

獲取路徑關聯數據。對應get命令。

ZooKeeper zk= new ZooKeeper("127.0.0.1",SESSION_TIME,this);

String data  = zk.getData("/test", false,null); 

四、setData

設置節點關聯數據。對應set命令。

ZooKeeper zk= new ZooKeeper("127.0.0.1",SESSION_TIME,this);

zk.setData ("/test", "Welcome".getBytes(), -1);

五、getChildren

獲取子節點路徑列表。對應ls命令。

ZooKeeper zk= new ZooKeeper("127.0.0.1",SESSION_TIME,this);

List<String> list = zk.getChildren("/", false); 

六、Watcher

設置觀察者:

只要在實例化ZooKeeper類時指定Watcher實現便可實現ZooKeeper事件,Watcher實現只須要實現process接口方法便可。

示例代碼:

zk = new ZooKeeper(address, sessionTimeout, new Watcher() { 

     // 監控全部被觸發的事件 

     public void process(WatchedEvent event) { 

           System.out.println("觸發事件:" + event.getType()); 

    } 

});  

這段代碼監聽ZooKeeper全部變化,事件處理代碼是打印event類型。

WatchedEvent的屬性:

1)鏈接狀態

        KeeperState keeperState = event.getState();

2)事件類型

        EventType eventType = event.getType();

3)znode的路徑名稱

        String path = event.getPath();

EventType有幾下幾種事件類型:

EventType.NodeCreated : 節點建立事件類型

EventType.NodeDeleted : 節點被刪除

EventType.NodeDataChanged : 節點被修改

EventType.None : 客戶端與服務器成功創建會話

EventType.NodeChildrenChanged : 子節點列表發生變動

相關文章
相關標籤/搜索