1. 程式人生 > >ZooKeeper的使用---Java程序

ZooKeeper的使用---Java程序

out n) 1.7 心跳 導入 idt ati new IE

一、導入庫
  1. 以下庫存放在目錄lib中:
audience-annotations-0.5.0.jar jline-0.9.94.jar log4j-1.2.17.jar netty-3.10.6.Final.jar slf4j-api-1.7.25.jar slf4j-log4j12-1.7.25.jar
  1. 以下庫存放在zookeeper安裝的根目錄中:
zookeeper-3.4.12.jar 二、ZooKeeper對象的操作
  1. zookeeper對象的創建
String connectString = "hadoop1:2181,hadoop2:2181,hadoop3:2181”;
int
sessionTimeout = 2000; ZooKeeper zookeeper = new ZooKeeper(connectString, sessionTimeout, new Watcher() { @Override public void process(WatchedEvent event) { ... } });
其中: connectString是連接zookeeper的信息 sessionTimeout是會話超時時間,也就是當一個zookeeper超過該時間沒有心跳,則認為該節點故障。 Watcher是一個監控器,一旦觸發監控就會回調process方法,觸發的事件會存在event對象中。
  1. ZooKeeper對象的常用方法
方法名 返回值 作用 各參數 備註
String create(final String path, byte data[], List<ACL> acl,CreateMode createMode) 返回值是path的字符串 創建節點
  1. path是創建節點路徑
  2. Data是節點中的值
  3. Acl是權限,可以通過Ids類的枚舉獲取
  4. createMode是創建的類型,有四種,分別為:永久,永久序列化,短暫,短暫序列化。
Stat setData(final String path, byte data[], int version) 節點狀態對象,裏面包含節點的各種信息,包括節點更改的版本,節點創建的日期等等。 設置節點的數據
  1. path是修改數據的節點路徑
  2. data是修改之後的值
  3. version是修改哪個版本的節點,-1表示所有節點
List<String> getChildren(String path, boolean watch) 節點下子節點集合,只有節點名稱,不是全路徑 獲取子節點列表
  1. path是父節點路徑。
  2. watch是是否監控子節點變化情況
byte[] getData(String path, boolean watch, Stat stat) 該節點的值 獲取該節點的值
  1. path是節點路徑
  2. watch是是否監控節點的數據變化
  3. Stat是明確是哪個狀態的節點,可以設置為null.
void delete(final String path, int version) 刪除節點
  1. path是節點路徑
  2. version是節點版本,-1表示刪除該路徑所有版本的節點

ZooKeeper的使用---Java程序