Zookeeper入门(七)之Java连接Zookeeper Linux环境下Zookeeper安装

 

Java操作Zookeeper很简单,但是前提要把包导对。

关于Zookeeper的Linux环境搭建可以参考我的这篇博客:Linux环境下Zookeeper安装

下面进入正题:

一、导入依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  modelVersion>4.0.0</groupId>cn.zookeeperartifactId>zookeeper_demoversion>0.0.1-SNAPSHOT>
  
<!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->

dependencies>
    dependency>org.apache.zookeeper>zookeeper>3.4.6>
project>

 

二、编写工具类代码和测试代码

package zookeeper_demo;

import java.util.List;
 java.util.concurrent.CountDownLatch;
 org.apache.zookeeper.CreateMode;
 org.apache.zookeeper.KeeperException;
 org.apache.zookeeper.WatchedEvent;
 org.apache.zookeeper.Watcher;
 org.apache.zookeeper.Watcher.Event.KeeperState;
 org.apache.zookeeper.ZooDefs.Ids;
 org.apache.zookeeper.ZooKeeper;
 org.apache.zookeeper.data.Stat;



public class BaseZookeeper implements Watcher{
 
   private ZooKeeper zookeeper;
    /**
     * 超时时间
     */
   private static final int SESSION_TIME_OUT = 2000;
   private CountDownLatch countDownLatch = new CountDownLatch(1);
   
   void process(WatchedEvent event) {
      if (event.getState() == KeeperState.SyncConnected) {
         System.out.println("Watch received event");
         countDownLatch.countDown();
      }
   }



  
   连接zookeeper
    * @param host
    * @throws Exception
    void connectZookeeper(String host) throws Exception{
      zookeeper = new ZooKeeper(host,SESSION_TIME_OUT,this);
      countDownLatch.await();
      System.out.println("zookeeper connection success");
   }
  
   
    * 创建节点
    *  path
    *  data
    * public String createNode(String path,String data)  Exception{
      return .zookeeper.create(path,data.getBytes(),Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
   }
  
   
    * 获取路径下所有子节点
    * @return
    *  KeeperException
    *  InterruptedException
    public List<String> getChildren(String path)  KeeperException,InterruptedException{
      List<String> children = zookeeper.getChildren(path,1)">false);
      return children;
   }
  
   
    * 获取节点上面的数据
    *  path  路径
    * public String getData(String path) byte[] data = zookeeper.getData(path,1)">false,1)">nullif (data == ) {
         return "";
      }
      new String(data);
   }
  
   
    * 设置节点信息
    *  data  数据
    * public Stat setData(String path,InterruptedException{
      Stat stat = zookeeper.setData(path,-1 stat;
   }
  
   
    * 删除节点
    *  InterruptedException
    *  KeeperException
    void deleteNode(String path)  InterruptedException,KeeperException{
      zookeeper.delete(path,-1
    * 获取创建时间
    * public String getCTime(String path)  String.valueOf(stat.getCtime());
   }
  
   
    * 获取某个路径下孩子的数量
    * public Integer getChildrenNum(String path) int childenNum = zookeeper.getChildren(path,1)">).size();
       childenNum;
   }
   
    * 关闭连接
    * void closeConnection()  InterruptedException{
      if (zookeeper != ) {
         zookeeper.close();
      }
   }
   void main(String[] args)  Exception {
       BaseZookeeper zookeeper =  BaseZookeeper();
       zookeeper.connectZookeeper("192.168.126.128:2181");
       List<String> children = zookeeper.getChildren("/");
       System.out.println(children);
   }
}

 

 

 

 

完成以上两步,即可完成Java连接并对Zookeeper的简单操作。

 

相关文章

#一、什么是ZooKeeper**ZooKeeper是一个分布式服务协调框架*...
2.ZooKeeper介绍2.1.ZooKeeper由来正式介绍ZooKeeper之前,我...
Zookeeper概述1.ZooKeeper最为主要的使⽤场景,是作为分布式...
环境:1.VMware®Workstation12Pro 2.CentOS7 3.zookeeper...
###1\.面试官:工作中使用过Zookeeper嘛?你知道它是什么...
##2\.ZooKeeper介绍###2.1\.ZooKeeper由来正式介绍Z...