com.discovery.darchrow.ZookeeperClientTest.java Source code

Java tutorial

Introduction

Here is the source code for com.discovery.darchrow.ZookeeperClientTest.java

Source

/**
 * Copyright (c) 2016 Baozun All Rights Reserved.
 *
 * This software is the confidential and proprietary information of Baozun.
 * You shall not disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with Baozun.
 *
 * BAOZUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
 * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 * PURPOSE, OR NON-INFRINGEMENT. BAOZUN SHALL NOT BE LIABLE FOR ANY DAMAGES
 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
 * THIS SOFTWARE OR ITS DERIVATIVES.
 *
 */
package com.discovery.darchrow;

import java.util.Arrays;
import java.util.List;

import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs;
import org.apache.zookeeper.ZooKeeper;

public class ZookeeperClientTest {
    // 
    public static final String ROOT = "/root-ktv";

    public static void main(String[] args) throws Exception {
        // ?
        ZooKeeper zk = new ZooKeeper("localhost:2181", 30000, new Watcher() {
            // ?
            public void process(WatchedEvent event) {
                System.out.println("?:" + event.getState() + ":" + event.getType() + ":" + event.getWrapper()
                        + ":" + event.getPath());
            }
        });
        // ktv???????
        zk.create(ROOT, "root-ktv".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

        // ??KTV ,       PERSISTENT_SEQUENTIAL  0000000000 ?
        zk.create(ROOT + "/?KTV", "?KTV".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,
                CreateMode.PERSISTENT_SEQUENTIAL);

        // ?,       EPHEMERAL session 
        zk.create(ROOT + "/KTV", "KTV".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

        // ???EPHEMERAL_SEQUENTIAL  session ?
        zk.create(ROOT + "/KTV-", "KTV-".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,
                CreateMode.EPHEMERAL_SEQUENTIAL);

        // ? ? ktv
        List<String> ktvs = zk.getChildren(ROOT, true);
        System.out.println(Arrays.toString(ktvs.toArray()));
        for (String node : ktvs) {
            // 
            zk.delete(ROOT + "/" + node, -1);
        }
        // ?
        zk.delete(ROOT, -1);
        zk.close();
    }
}