4.java的api测试

来源:互联网 发布:绿色破解软件 编辑:程序博客网 时间:2024/06/17 20:09

1.需要的jar包


2.测试

开启CentOS上面的单个zk服务

package zkTest.test;import java.io.IOException;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;import org.apache.zookeeper.ZooKeeper;//继承事件接口,响应zk-server事件的回调public class zk_test implements Watcher{//所有操作都是基于这个zk实例    private ZooKeeper zk = null;//创建zk实例public zk_test connection() throws IOException{//连接超时时间,指定回调事件实例    zk = new ZooKeeper("192.168.88.131:2181", 10000, this);    return this;}//关闭zk实例public void un_connection() throws Exception{this.zk.close();}    public static void main(String args[]) throws Exception {    //new zk_test().connection().createPath();//同步方式创建节点    //new zk_test().connection().readData();//先创建,再读取    //new zk_test().connection().writeData();//先创建,再更新    new zk_test().connection().deleteNode();//先创建,再删除    }            //事件回调函数,接收zk发送的eventpublic void process(WatchedEvent event) {//下面的增删改查资格方法都有相对的事件,都会触发这个函数}                //同步方式创建节点    public void createPath() {        try {        //节点名称        String path ="/nileader1";        //节点数据        String data ="节点内容";            String status = this.zk.create(path,                  data.getBytes(),                  ZooDefs.Ids.OPEN_ACL_UNSAFE,//节点访问策略:这里是公开不安全访问策略(任何zk实例都可以访问)                  CreateMode.EPHEMERAL);//节点类型:临时            System.out.println(status);//返回的是path                    } catch (KeeperException e) { e.printStackTrace();        } catch (InterruptedException e) { e.printStackTrace();        }    }//获取指定节点数据    public void readData(){        try {        //节点名称        String path ="/nileader1";        //先创建临时节点        this.createPath();        //在读取临时节点        byte[] bytes = this.zk.getData(path, false, null);        System.out.println(new String(bytes));                } catch (KeeperException e) {e.printStackTrace();        } catch (InterruptedException e) {e.printStackTrace();        }    }                    //更新指定节点数据    public void writeData() {        try {        //节点名称        String path ="/nileader1";        //先创建临时节点        this.createPath();        //更新这个节点的内容,返回节点path        String result = this.zk.setData(path, "新的内容".getBytes(), -1).toString();                        } catch (KeeperException e) { e.printStackTrace();        } catch (InterruptedException e) { e.printStackTrace();        }    }            //删除指定节点    public void deleteNode() {        try {        //节点名称        String path ="/nileader1";        //先创建临时节点        this.createPath();        //删除(int参数是版本)            this.zk.delete(path, -1);                                } catch (KeeperException e) {  e.printStackTrace();        } catch (InterruptedException e) {  e.printStackTrace();        }    }     }


原创粉丝点击