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

    }

  • 相关阅读:
    (二)使用log4net写入数据库自定义日志
    (一)使用log4net生成日志文件
    微信公众号测试号内网配置以及微信网页授权
    ios浏览器调试踩坑(1)----mescroll.js和vue-scroller
    three 3D实例学习
    golang解析git log时间
    Shell 简易教程
    golang 并发程序写入map两种实现方式sync.Mutex和chan的效率对比
    golang字符串string与字符数组[]byte高效转换
    mysql begin rollback commit 事务互斥验证
  • 原文地址:https://www.cnblogs.com/wshsdlau/p/3961640.html
Copyright © 2020-2023  润新知