设为首页 加入收藏

TOP

Zookeeper API JAVA 解析
2014-11-24 00:08:11 来源: 作者: 【 】 浏览:8
Tags:Zookeeper API JAVA 解析

常用方法:


注意点:


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 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();
}

}


}


相关阅读


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇在 Go 语言中,正确的使用并发 下一篇Lua中常量的实现及表的深拷贝实现

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: