zookeeper之java API使用

public static void main(String[] args) {

try {

zooKeeper = new ZooKeeper(“192.168.40.135:2181”, 5000, new Watcher() {

public void process(WatchedEvent watchedEvent) {

if (watchedEvent.getState() == Event.KeeperState.SyncConnected) {

doSomeThing();

}

}

});

System.out.println(“state:{}” + zooKeeper.getState());

Thread.sleep(Integer.MAX_VALUE);

}

catch (IOException e) {

System.out.println(“connect zk failed”);

}

catch (InterruptedException e) {

e.printStackTrace();

}

}

private static void doSomeThing() {

zooKeeper.create(“/node_5”, “123”.getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT, new IStringClassback(), “异步创建”);

}

//异步调用,需要 一个回调函数

static class IStringClassback implements AsyncCallback.StringCallback {

/**

  • @param rc 返回码,如果异步创建成功,返回0

  • @param path 创建节点的完整路径

  • @param ctx 异步调用的上下文,。。也就是上面传下来的“创建”字符串

  • @param name 服务端返回的已经创建节点的真实路径,如果是顺序节点,那么和path不一致

*/

public void processResult(int rc, String path, Object ctx, String name) {

StringBuilder stringBuilder = new StringBuilder();

stringBuilder.append(“rc=” + rc).append(“\n”);

stringBuilder.append(“path=” + path).append(“\n”);

stringBuilder.append(“ctx=” + ctx).append(“\n”);

stringBuilder.append(“name=” + name).append(“\n”);

System.out.println(stringBuilder.toString());

}

}

}

运行结果:

你可能感兴趣的:(Java,经验分享,面试,java)