zoukankan      html  css  js  c++  java
  • Zookeeper常用命令行及API

    一、Zookeeper常用命令行

      1.启动zookeeper客户端(在启动zookeeper集群后启动进行调试)

        zkCli.sh  

      2.查看帮助、操作历史

        help、history

      3.查看当前Znode的目录

        ls /    ls2 /  (查看当前Znode的详细信息)

      4.创建Znode

       (1)默认:create 路径 内容

        create /Wyh 18yearsold

       (2)创建短暂的Znode  ephemeral

        create -e /dilireba beautiful

        (3)创建带序号的Znode  sequential

        create -s /yangmi justsoso

       (4)创建短暂带序号的Znode

        create -e -s /wyh cool

      5.查看Znode

        get /Wyh

      6.修改Znode

        set /Wyh

      7.删除Znode

        delete /Wyh

        rmr /Wyh  =>递归删除,即删除该节点及该节点下所有子节点

      8.监听节点

       (1)监听节点的子节点,即监听路径

        ls / watch

       (2)监听节点的内容

        get / watch

      9.查看节点状态

        stat /Wyh

    二、Zookeeper常用API

      1.准备工作,zookeeper的依赖:

       可以解压其压缩包,将lib目录下的依赖包导入到编译器; 

       也可以使用maven,maven配置:

            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>3.4.10</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>compile</scope>
            </dependency>
    

      2.常用方法讲解:

        (1)首先创建客户端类ZKClient

        在类中定义全局变量连接字段connectString、连接超时sessionTimeout、客户端类比变量zkCli;
        (2)
    初始化客户端

        定义初始化方法init,new一个zookeeper赋值给zkCli,并设置它的变量connectString,sessionTimeout,new Watcher(),置回调监听watcher;

       (输出事件event的路径、状态、类型,并用try/catch抛出异常)
        (3)
    创建节点方法

        定义创建节点方法createZnode,调用客户端create方法,设置路径、编辑内容并转化为byte类型、应答类型、节点类型,然后将路径赋值给字符串变量path

    ,输出path;
        (4)
    获取子节点方法

          定义方法getZnode,调用客户端getChildren方法,设置目标路径、是否监听,把获取的子节点的名称赋值给字符串集合children,使用 for循环遍历children集合;

       (5)删除节点方法

          定义方法deleteZnode,调用delete方法,设置目标节点、版本值(-1为删除),然后可以遍历目标删除节点的父节点;
         (6)
    修改节点方法、并查看

          定义方法setZnode,调用setData方法,设置目标节点并转化为byte类型、版本值(-1),调用getData方法,设置查看节点、是否监听、状态(new Stat()),将得到的值赋值给字节集合data,将data强转为string类型数据进行查看。

      3.具体代码

    /**
     * @author: PrincessHug
     * @date: 2019/2/25, 13:28
     * @Blog: https://www.cnblogs.com/HelloBigTable/
     */
    public class ZKClient01 {
        private String connectString = "192.168.126.128:2181,192.168.126.129:2181,192.168.126.130:2181";
        private int senssionTimeout = 3000;
        private ZooKeeper zkCli = null;
    
        /**
         * 初始化客户端
         * @ throws IOException
         */
        @Before
        public void unit() throws IOException {
            zkCli = new ZooKeeper(connectString, senssionTimeout, new Watcher() {
                public void process(WatchedEvent watchedEvent) {
    
                }
            });
        }
    
        /**
         * 创建节点
         * @ throws KeeperException
         * @ throws InterruptedException
         */
        @Test
        public void createZnode() throws KeeperException, InterruptedException {
            String path = zkCli.create("/Wyh", "cool".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
    
            System.out.println(path);
    
        }
    
        //获取节点
        @Test
        public void getZone() throws KeeperException, InterruptedException {
            List<String> children = zkCli.getChildren("/", true);
            for (String c:children){
                System.out.println(c);
            }
        }
    
        //删除节点
        @Test
        public void deleteZnode() throws KeeperException, InterruptedException {
            zkCli.delete("/baby",-1);
            getZone();
        }
    
        //修改节点
        @Test
        public void setZnode() throws KeeperException, InterruptedException {
            zkCli.setData("/Wyh","reallycool".getBytes(),-1);
            byte[] data = zkCli.getData("/Wyh", true, new Stat());
            System.out.println(new String(data));
        }
    
    }

      

  • 相关阅读:
    c# 用System.Net 读取网页源代码 1
    最新影视论坛
    【待续】翻译:jQuery Mobile: 他能为你做什么?
    【转】ASP.NET MVC 3.0 新特性之View
    强烈推荐:纯JAVASCRIPT图表动画插件Highcharts Examples
    [翻译]帮助文档jQuery 选择器
    【转】C# DateTime Format Examples [C#日期格式化]
    【转载】LINQ to SQL之一
    【转】ASP.NET MVC 3.0 新特性之Controller
    强烈推荐:JAVASCRIPT图片相册插件
  • 原文地址:https://www.cnblogs.com/HelloBigTable/p/10434153.html
Copyright © 2011-2022 走看看