• zookeeper入门实例


    package org.merit.test.zookeepertest;

    import java.io.IOException;
    import java.util.List;
    import java.util.concurrent.CountDownLatch;

    import org.apache.zookeeper.CreateMode;
    import org.apache.zookeeper.KeeperException;
    import org.apache.zookeeper.WatchedEvent;
    import org.apache.zookeeper.Watcher;
    import org.apache.zookeeper.Watcher.Event.KeeperState;
    import org.apache.zookeeper.ZooDefs.Ids;
    import org.apache.zookeeper.ZooKeeper;
    import org.apache.zookeeper.data.Stat;

    public class ZookeeperTestCase implements Watcher {

    private static ZooKeeper zk;
    private String path;
    private Stat stat;
    private static CountDownLatch countDown = new CountDownLatch(1);

    public ZookeeperTestCase(){
    if(zk == null){
    try {
    System.out.println("Starting ZK:");
    zk = new ZooKeeper("0.0.0.0", 3000, this); //"0.0.0.0"服务器端IP
    countDown.await();
    System.out.println("Finished starting ZK: " + zk);
    } catch (IOException e) {
    zk = null;
    e.printStackTrace();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }

    @Override
    public void process(WatchedEvent event) {
    if(event.getState() == KeeperState.SyncConnected){
    countDown.countDown();
    }
    System.out.println("-----"+event.getState());
    }

    public void create() throws KeeperException, InterruptedException{
    path = zk.create("/zk_java", "java_binding".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);
    System.out.println("created znode:" + path);
    }

    public void list() throws KeeperException, InterruptedException{
    List<String> strings = zk.getChildren("/", true);
    System.out.println("list:"+strings);
    }

    public void exist() throws KeeperException, InterruptedException{
    stat = zk.exists(path, true);
    System.out.println("exits:"+stat.getDataLength());
    }

    public void get() throws KeeperException, InterruptedException{
    Stat stat = new Stat();
    byte[] data = zk.getData(path, true, stat);
    System.out.print(new String(data));
    System.out.println(stat);
    }

    public void set() throws KeeperException, InterruptedException{
    stat = zk.setData(path, "zk_ooxx".getBytes(), stat.getVersion());
    }

    public void delete() throws InterruptedException, KeeperException{
    zk.delete(path, stat.getVersion());
    }

    public void close() throws InterruptedException{
    zk.close();
    }

    public static void main(String[] args) throws Exception {
    ZookeeperTestCase zkTest = new ZookeeperTestCase();

    zkTest.list();

    zkTest.create();
    zkTest.list();

    zkTest.exist();
    zkTest.get();

    zkTest.set();
    zkTest.get();

    zkTest.delete();
    zkTest.list();

    zkTest.close();
    }

    }

  • 相关阅读:
    <img>标签
    <a>标签
    HTML标签类型
    HTML实体
    HTML颜色的三种写法
    HTML绝对路径和相对路径
    HTML基本结构及标签样式
    Java Activiti 工作流引擎 springmvc SSM 流程审批 后台框架源码
    java ssm 后台框架平台 项目源码 websocket IM quartz springmvc
    分批插入数据基于mybatis
  • 原文地址:https://www.cnblogs.com/wshsdlau/p/3961640.html
Copyright © 2020-2023  润新知