欢迎访问 如意编程网!

如意编程网

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Zookeeper常用命令行及API

发布时间:2024/7/5 编程问答 4 豆豆
如意编程网 收集整理的这篇文章主要介绍了 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*/@Beforepublic void unit() throws IOException {zkCli = new ZooKeeper(connectString, senssionTimeout, new Watcher() {public void process(WatchedEvent watchedEvent) {}});}/*** 创建节点* @ throws KeeperException* @ throws InterruptedException*/@Testpublic void createZnode() throws KeeperException, InterruptedException {String path = zkCli.create("/Wyh", "cool".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);System.out.println(path);}//获取节点 @Testpublic void getZone() throws KeeperException, InterruptedException {List<String> children = zkCli.getChildren("/", true);for (String c:children){System.out.println(c);}}//删除节点 @Testpublic void deleteZnode() throws KeeperException, InterruptedException {zkCli.delete("/baby",-1);getZone();}//修改节点 @Testpublic 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));}}

 

  

 

转载于:https://www.cnblogs.com/HelloBigTable/p/10434153.html

总结

以上是如意编程网为你收集整理的Zookeeper常用命令行及API的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得如意编程网网站内容还不错,欢迎将如意编程网推荐给好友。