zookeeper的java客户端api
来源:互联网 发布:免费hifi播放软件 编辑:程序博客网 时间:2024/05/20 15:59
zookeeper的java客户端api
zookeeper客户端无非是对节点的更删改查和监听
首先导入zookeeper依赖包
定义zookeeper集群要连机器的ip,用","分开;
private static final String connectString = "192.168.21.50,192.168.21.51,192.168.21.52";(该值为zoo.cfg配置的server值)
定义超时时间(2秒);
private static final int sessionTimeOut =2000;
然后注册一个监听器watcher。以下为一个匿名内部类监听器
Zookeeper zkClient = new Zookeeper(connectString,sessionTimeOut,new Watcher(){
public void process(WatchedEvent event){
//收到事件通知后的自调函数(这儿是我们自己的时间处理器)
event.getType(事件的类型)
event.getPath()(哪个节点的事件)
}
});
接着我们就可以对数据进行增删改查
增:String nodeCreate(create返回值,为该节点的路径)= zkClient.create("/app"(节点的路径),"hellozk".getBytes(该节点的值,可为任何数据),Ids.OPEN_ACL_UNSAFE(权限),createMode.PERSISTENT(节点的类型,该值是个枚举类型))
查:List<String> children = zkClient.getChidren("/",true(此处为监听器,可自定义,监听器只监听一次(可在监听器里在注册一个监听器)));
判断app节点是否存在,Stat为null表示不存在:Stat stat = zkClient.exists("/app",false);
获取数据:byte[] data = zkClient.getdata("/app",false,null);
删除app节点:zkClient.delete("/app",-1(指定删除的版本,-1删除所有版本));
改节点的值:zkClient.setData("/app","l miss you xx".getBytes(),-1);
阅读全文