常用方法:
注意點:
watcher 的觸發,為一次性。
測試程序
package zookeeper;
import java.io.IOException;
import java.util.List;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
public class ZookeeperTest {
public static final int Zookeeper_SESSION_TIMEOUT = 20000;
static ZooKeeper zk;
static class TestWatcher implements Watcher {
@Override
public void process(WatchedEvent event) {
// TODO Auto-generated method stub
System.out.println("come from TestWatcher-> process");
}
}
static TestWatcher watcher = new TestWatcher();
/**
* new ZooKeeper
* 初始化 ZooKeeper 實例
*/
public static void createZKInstance() throws IOException, KeeperException,
InterruptedException {
zk = new ZooKeeper("ip:port,ip:port", Zookeeper_SESSION_TIMEOUT,watcher);
}
/**
* create
* 創建節點
*/
public static void createNode(String node) throws IOException, InterruptedException,KeeperException
{
if (zk.exists(node, null) == null) {
zk.create(node,node.getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);
}
}
/**
* exists
* 判斷節點是否存在
*/
public static boolean isExists(String node) throws InterruptedException,
KeeperException {
if (zk.exists(node, null) == null) {
return false;
}
return true;
}
/**
* getChildren
* 獲取一個節點的子節點列表
*/
public static List<String> getChildren(String node) throws KeeperException, InterruptedException{
return zk.getChildren(node, null);
}
/**
* 返回節點的數據
*/
public static byte[] getDate(String path ) throws KeeperException, InterruptedException{
return zk.getData(path, null, null);
}
public static void main(String[] args) {
try {
createZKInstance();
createNode("/testnodes");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (KeeperException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
ZooKeeper 的詳細介紹:請點這裡
ZooKeeper 的下載地址:請點這裡