美文网首页
Zookeeper在Java中使用

Zookeeper在Java中使用

作者: 一枚智障者 | 来源:发表于2020-03-29 20:11 被阅读0次

API方式调用Zookeeper

1.引入Maven依赖

       <dependency>
           <groupId>org.apache.zookeeper</groupId>
           <artifactId>zookeeper</artifactId>
           <version>3.4.14</version>
       </dependency>

2.连接客户端

public class ClientTest implements Watcher {

    public static ZooKeeper zooKeeper = null;

    public static String HOST = "192.168.255.62:2181";

    private static CountDownLatch countDownLatch = new CountDownLatch(1);
    
    /**
     ** 客户端可以通过创建一个zk实例来连接zk服务器
    ** 注意:Zookeeper客户端和服务端会话的建立是一个异步的过程,也就是说在程序中,
    ** 构造方法会在处理完客户端初始化工作后立即返回,在大多数情况下,此时并没有真正建立好一个可用的会话,
    ** 在会话的生命周期中处于“CONNECTING”的状态。当会话真正创建完毕后Zookeeper服务端会向会话
    ** 应用的客户端发送一个事件通知,告知客户端,客户端获取到该通知之后,这样才算真正建立了会话。
     ** connectString: 连接地址:IP:端⼝
     ** sesssionTimeOut:会话超时时间:单位毫秒
     ** Wather:监听器(当特定事件触发监听时, zk会通过watcher通知到客户端)
     */
    public static void getClient() throws Exception {
        zooKeeper = new ZooKeeper(HOST, 5000, new ClientTest());
        countDownLatch.await();
    }

     /**
     ** 这里通过当前类实现Watcher接口,重新process方法,实现watcher监听
     */
    @Override
    public void process(WatchedEvent watchedEvent) {
        System.out.println("receive the event:"+ watchedEvent);
        countDownLatch.countDown();
    }
}

3.创建节点

    /**
     * path :节点创建的路径
     * data[] :节点创建要保存的数据,是个byte类型的
     * acl :节点创建的权限信息(4种类型)
     * ANYONE_ID_UNSAFE : 表示任何⼈
     * AUTH_IDS :此ID仅可⽤于设置ACL。它将被客户机验证的ID替换。
     * OPEN_ACL_UNSAFE :这是⼀个完全开放的ACL(常⽤) world:anyone
     * CREATOR_ALL_ACL :此ACL授予创建者身份验证ID的所有权限
     * createMode :创建节点的类型(4种类型)
     * PERSISTENT:持久节点
     * PERSISTENT_SEQUENTIAL:持久顺序节点
     * EPHEMERAL:临时节点
     * EPHEMERAL_SEQUENTIAL:临时顺序节点
     String node = zookeeper.create(path,data,acl,createMode);
     */
    public static void createNode() throws KeeperException, InterruptedException {
        String ret = zooKeeper.create("/api-create", "测试数据".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        System.out.println("返回节点的路径:" + ret);
    }

4. 获取节点

    /**
     * path:获取数据的路径
     * watch:是否开启监听
     * stat:表示获取当前的版本,null为最新版本的数据
     * zookeeper.getData(path,watch,stat);
     */
    public static void getNode() throws KeeperException, InterruptedException {
        byte[] data = zooKeeper.getData("/api-create", true, null);
        System.out.println("获取到当前节点的数据:" + new String(data));
    }

5.更新节点

    /**
     * path:路径
     * data:要修改的内容
     * version:版本号,-1表示对最新版本的数据进行修改
     * zookeeper.setData(path, data, version);
     */
    public static void updateNode() throws Exception {
        Stat stat = zooKeeper.setData("/api-create", "update".getBytes(), -1);
    }

6.删除节点

    /**
     * path:删除的节点路径
     * version:版本号
     * zookeeper.delete(path, version);
     */
    public static void deleteNode() throws Exception {
        zooKeeper.delete("/aip-create",-1);
    }

相关文章

  • NIO在Zookeeper中的应用

    NIO在Zookeeper中的应用,我们今天讨论的是Zookeeper服务端启动流程中,使用Java NIO或者N...

  • 2018-06-15 zookeeper简单使用

    zookeeper服务器环境搭建参考zookeeper zookeeper在java下使用1.pom 引入对应的包...

  • Zookeeper在Java中使用

    API方式调用Zookeeper 1.引入Maven依赖 2.连接客户端 3.创建节点 4. 获取节点 5.更新节...

  • JAVA编程访问Zookeeper

    1、依赖类库 在JAVA程序中调用Zookeeper时,首先需要引入Zookeeper类库:  zookeepe...

  • 在java中操作ZooKeeper

    ZooKeeper服务命令: 在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操...

  • ZooKeeper 初步

    单实例安装 下载 zookeeper使用Java编写,依赖的JDK版本为1.6+,因此zookeeper的运行需要...

  • 4. ZooKeeper 基本操作

    ZooKeeper的数据模型及其API支持以下九个基本操作: 我们来使用ZooKeeper Java shell对...

  • 28 java代码访问zookeeper

    这一节我们将展示使用java访问zookeeper服务。 1、前提约束 完成zookeeper的安装https:/...

  • 【ZooKeeper】③ Java 代码使用 ZooKeeper

    目录 零、创建 SpringBoot 项目 一、Java 客户端(MAVEN 依赖) (1) ZooKeeper ...

  • fluent编程风格

    在看zookeeper过程中,看到Curator客户端工具,在创建Zookeeper client 的过程中,使用...

网友评论

      本文标题:Zookeeper在Java中使用

      本文链接:https://www.haomeiwen.com/subject/jbpuuhtx.html