服务器通信以及跨平台通信中会遇到zookeeper这个东西,至于什么是zookeeper,google it!

为了测试这块的东西,必须要懂zookeeper工作原理,因此,本人整理了一下zookeeper的一般用法便于理解,以及更好的测试~~


package com.kiven.test;import java.io.IOException;
import java.util.concurrent.CountDownLatch;import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.Watcher.Event.KeeperState;public class Demo implements Watcher {//缓存时间 private static final int SESSION_TIME   = 2000;    protected ZooKeeper zooKeeper; protected CountDownLatch countDownLatch= new CountDownLatch(1);public void connect(String hosts) throws IOException, InterruptedException{    zooKeeper = new ZooKeeper(hosts, SESSION_TIME, this);    countDownLatch.await();}/* (non-Javadoc)* @see org.apache.zookeeper.Watcher#process(org.apache.zookeeper.WatchedEvent)*/ public void process(WatchedEvent event) { // TODO Auto-generated method stub if(event.getState()==KeeperState. SyncConnected){ countDownLatch.countDown(); } }public void close() throws InterruptedException{zooKeeper.close();    }
}
=================================================================================================================================package com.kiven.test;import java.util.List;import org.apache.log4j.PropertyConfigurator;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.ZooDefs.Ids;public class MyTest extends Demo{   /*** *<b> function:</b> 创建持久态的znode,比支持多层创建.比如在创建/parent/child的情况下,无/parent.无法通过*@author cuiran*@createDate 2013 -01 -16 15:08:38*@param path*@param data*@throws KeeperException*@throws InterruptedException*/ public void create(String path, byte[] data) throws KeeperException, InterruptedException{ /*** 此处采用的是CreateMode是PERSISTENT   表示The znode will not be automatically deleted upon client's disconnect.* EPHEMERAL 表示The znode will be deleted upon the client's disconnect.*/  this. zooKeeper.create(path, data, Ids. OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); } /*** *<b> function:</b> 获取节点信息*@author cuiran*@createDate 2013 -01 -16 15:17:22*@param path*@throws KeeperException*@throws InterruptedException*/ public void getChild(String path) throws KeeperException, InterruptedException{    try{ List<String> list= this. zooKeeper.getChildren(path, false); if(list.isEmpty()){ System. out.println(path+ "中没有节点" );} else{ System. out.println(path+ "中存在节点" ); for(String child:list){System. out.println( "节点为:"+child);} } } catch (KeeperException.NoNodeException e) { // TODO: handle exception throw e;} } public byte[] getData(String path) throws KeeperException, InterruptedException {    return  this. zooKeeper.getData(path, false, null);    }   public static void main(String args[]){PropertyConfigurator. configure("log4j.properties");try {    MyTest zkoperator = new MyTest();    zkoperator.connect( "172.16.3.9"); //          byte[] data = new byte[]{'a','b','c','d'};    //          zkoperator.create("/root",null);
//          System.out.println(Arrays.toString(zkoperator.getData("/root")));
//
//          zkoperator.create("/root/child1",data);
//          System.out.println(Arrays.toString(zkoperator.getData("/root/child1")));
//
//          zkoperator.create("/root/child2",data);
//          System.out.println(Arrays.toString(zkoperator.getData("/root/child2")));    String zktest= "ZooKeeper的Java API测试" ; zkoperator.create( "/test", zktest.getBytes());zkoperator.create( "/test/test1", zktest.getBytes());System. out.println( "获取设置的信息:" +new String(zkoperator.getData("/test" ))); System. out.println( "节点孩子信息:" );zkoperator.getChild( "/test");    zkoperator.close();    } catch (Exception e) {    e.printStackTrace();    } }
}

java链接zookeeper相关推荐

  1. java zookeeper_Java zookeeper开发实例

    1.安装zookeeper 下载zk http://archive.cloudera.com/cdh5/cdh/5/ 配置文件tickTime=2000 initLimit=10 syncLimit= ...

  2. ZooKeeper入门(二)Java操作zookeeper

    首先是pom依赖: <dependency><groupId>org.apache.zookeeper</groupId><artifactId>zoo ...

  3. mysql数据库java链接,java链接MySQL数据库方法

    第一步:安装MySQL 这步我就很少说了,点击去看看怎么安装吧.html 第二步:建立数据库 安装好以后,咱们来建立一个数据库,一个表.(代码以下). //建立数据库 test: //在数据库中建立表 ...

  4. java连接zookeeper_java 学习笔记(四) java连接ZooKeeper

    public class Demo2 { public static void main(String[] args) { String connectString = "192.168.1 ...

  5. Java链接Access工具类

    Java链接Access工具类 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedS ...

  6. java链接MySQL

    java链接MySQL 1.首先安装MySQL,把bin目录添加到path 环境变量 2.修改 sql 登录名为123456.update mysql.user set authentication_ ...

  7. 【转载】elastic-job链接zookeeper报错KeeperErrorCode = OperationTimeout

    org.apache.zookeeper.KeeperException$OperationTimeoutException: KeeperErrorCode = OperationTimeout 报 ...

  8. java 链接占用太多_Java程序链接数过多导致java.net.SocketException: No buffer space available问题...

    发布时间: Aug 29, 2020 更新时间: Aug 29, 2020 总字数:482 阅读时间:1m 作者: 谢先斌 Java程序链接数过多导致java.net.SocketException: ...

  9. java 链接为分布式 hbase,hbase学习记录(一):hbase伪分布式安装

    将安装包解压缩到/usr/local下,并将文件夹重命名为hbase tar -xvf hbase-1.2.6-bin.tar.gz -C /usr/local #解压缩到/usr/local文件夹 ...

最新文章

  1. Zookeeper集群 + Kafka集群 + KafkaOffsetMonitor 监控
  2. SAP Spartacus和传统的Accelerator超时机制(timeout)的区别
  3. 15-mysql-进阶九-联合查询
  4. 用Typescript如火如荼地进行angular.js
  5. XSS后台敏感操作(审计思路实现)
  6. Unity3D实践1.1:解决摄像机跟随中的视野遮挡问题
  7. (九)java多线程之CyclicBarrier
  8. 一站式学习Wireshark(三):应用Wireshark IO图形工具分析数据流
  9. 短视频封面类型分享,精彩瞬间引导观看,封面也是吸粉的重点
  10. 用golang生成6位数的唯一id
  11. matlab 图像上加边框,matlab代码-图像上画框 | 学步园
  12. 对标RTX 3060,英特尔独显或将迎来第一波主流游戏玩家
  13. python3之微信文章爬虫
  14. PHP-thinkPHP快速入门
  15. java socket连接超时_Java中Socket设置连接超时的代码
  16. CSS 网页定位与布局
  17. 2022学术道德与学术规范教育【研究生】SPOC课程答案
  18. 自动化手游测试视频震撼发布
  19. 华为css与堆叠,华为堆叠配置
  20. 电大计算机应用基础期末考试题,电大计算机应用基础模拟题答案.docx

热门文章

  1. 天气调用php代码,天气调用代码
  2. python 单例模式浅析
  3. JS-7种IIFE写法
  4. MT6571 alps 光感 stk3x1x(光感als+距离传感器ps)
  5. Python实现饮料换购
  6. 俄罗斯方块总结(2)
  7. 2021-07-04 寄存器读写
  8. TDL3 Source Code
  9. element ui中的el-dropdown(下拉框)防止点一下就隐藏的问题
  10. 腐败团--铁锅门养生香辣馆