Zookeeper--05---客户端API *** 作

Zookeeper--05---客户端API *** 作,第1张

Zookeeper--05---客户端API *** 作

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

客户端API *** 作

依赖前提:1.创建 ZooKeeper客户端2.创建子节点

create 方法acl----- 权限CreateMode -----节点类型 (持久 还是 临时节点) 3.获取子节点 并监听节点变化

注意设置的监听,只监听一次,如果重复监听,得设置监听得process再次注册 4.判断 Znode是否存在


客户端API *** 作 依赖

            junit
            junit
            RELEASE
        

        
            org.apache.logging.log4j
            log4j-core
            2.8.2
        

        
            org.apache.zookeeper
            zookeeper
            3.5.7
        
前提:

保证 hadoop102、hadoop103、hadoop104服务器上 服务器上 Zookeeper集群服务端启动。
1.创建 ZooKeeper客户端

public class zkClient {

    // 注意:逗号左右不能有空格
    private String connectString = "hadoop102:2181,hadoop103:2181,hadoop104:2181";
    private int sessionTimeout = 2000;
    private ZooKeeper zkClient;

    @Before
    public void init() throws IOException {

        zkClient = new ZooKeeper(connectString, sessionTimeout, new Watcher() {
            @Override
            public void process(WatchedEvent watchedEvent) {

//                System.out.println("-------------------------------");
//                List children = null;
//                try {
//                    children = zkClient.getChildren("/", true);
//
//                    for (String child : children) {
//                        System.out.println(child);
//                    }
//
//                    System.out.println("-------------------------------");
//                } catch (KeeperException e) {
//                    e.printStackTrace();
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
            }
        });
    }
}
2.创建子节点
    @Test
    public void create() throws KeeperException, InterruptedException {
        String nodeCreated = zkClient.create("/atguigu", "ss.avi".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
    }
create 方法

String path, 节点路径byte data[], 存储内容List acl, 权限CreateMode createMode 节点类型 (持久 还是 临时节点)
acl----- 权限

CreateMode -----节点类型 (持久 还是 临时节点)

持久节点持久序号节点临时节点临时序号节点Container节点TTL节点

3.获取子节点 并监听节点变化

    @Before
    public void init() throws IOException {

        zkClient = new ZooKeeper(connectString, sessionTimeout, new Watcher() {
            @Override
            public void process(WatchedEvent watchedEvent) {

        });
    }


    @Test
    public void getChildren() throws KeeperException, InterruptedException {
        List children = zkClient.getChildren("/", true);

        for (String child : children) {
            System.out.println(child);
        }

        // 延时
        Thread.sleep(Long.MAX_VALUE);
    }
注意设置的监听,只监听一次,如果重复监听,得设置监听得process再次注册

4.判断 Znode是否存在
    @Test
    public void exist() throws KeeperException, InterruptedException {

        Stat stat = zkClient.exists("/atguigu", false);

        System.out.println(stat==null? "not exist " : "exist");
    }

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5700941.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存