1.创建会话
public class ZKTest implements Watcher {
private static CountDownLatch connectedSemaphore = new CountDownLatch(1);
public static void main(String[] args) throws IOException {
ZooKeeper zooKeeper = new ZooKeeper("127.0.0.1:2181",5000,new ZKTest());
System.out.println(zooKeeper.getState());
try {
connectedSemaphore.await();
} catch (InterruptedException e) {
// TODO: handle exception
System.out.println("ZooKeeper session established!");
}
}
@Override
public void process(WatchedEvent event) {
System.out.println("Receive watched event: " + event);
if (KeeperState.SyncConnected == event.getState()) {
connectedSemaphore.countDown();
}
}
}
输出结果:
CONNECTING
Receive watched event: WatchedEvent state:SyncConnected type:None path:null
2.同步创建节点
public class ZKTest implements Watcher {
private static CountDownLatch connectedSemaphore = new CountDownLatch(1);
public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
ZooKeeper zooKeeper = new ZooKeeper("127.0.0.1:2181",5000,new ZKTest());
connectedSemaphore.await();
String path1 = zooKeeper.create("/zk-program", "this is zk data".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);
System.out.println("Success create znode: " + path1);
String path2 = zooKeeper.create("/zk-program", "this is zk data".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);
System.out.println("Success create znode: " + path2);
}
@Override
public void process(WatchedEvent event) {
if(KeeperState.SyncConnected == event.getState()){
connectedSemaphore.countDown();
}
}
}
输出结果:
Success create znode: /zk-program
Success create znode: /zk-program0000000007
3.异步创建节点