对于学习java的小伙伴们来说,zookeeper一定是不陌生的,你们知道要如何在java中与zookeeper交互小结吗?这次小编就通过一个示例来带大家了解一下吧。import org.apache.zookeeper.*;

import org.apache.zookeeper.data.Stat;

import java.io.IOException;

import java.util.concurrent.CountDownLatch;

/**

* @author likexin

* @date 2019/07/01

*/

public class ZKHelper implements Watcher

{

public static ZooKeeper zk = null;

private CountDownLatch countDownLatch = new CountDownLatch(1);

public void process(WatchedEvent watchedEvent)

{

if (watchedEvent.getState() == Event.KeeperState.SyncConnected)

{

countDownLatch.countDown();

}

}

/**

* 创建连接

* @param host

*/

public void connectZookeeper(String host)

{

try

{

zk = new ZooKeeper(host, 2000, this);

countDownLatch.await();

}

catch (IOException e)

{

e.printStackTrace();

}

catch (InterruptedException e)

{

e.printStackTrace();

}

}

/**

* 注册节点

* @param path 节点的路径

*/

public void regist(String path)

{

try

{

zk.create(path, null, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

}

catch (KeeperException e)

{

e.printStackTrace();

}

catch (InterruptedException e)

{

e.printStackTrace();

}

}

/**

* 修改节点的内容

* @param path 节点路径

* @param data

*/

public void updateNodeData(String path, String data)

{

try

{

zk.setData(path, data.getBytes(), -1);

}

catch (KeeperException e)

{

e.printStackTrace();

}

catch (InterruptedException e)

{

e.printStackTrace();

}

}

/**

* 获取数据

* @param path 节点路径

* @return

*/

public String getData(String path)

{

Stat stat = new Stat();

String data = null;

try

{

data = new String(zk.getData(path, true, stat));

}

catch (KeeperException e)

{

e.printStackTrace();

}

catch (InterruptedException e)

{

e.printStackTrace();

}

return data;

}

/**

* 关闭连接

*/

public void close()

{

try

{

zk.close();

}

catch (InterruptedException e)

{

e.printStackTrace();

}

}

public static void main(String[] args)

{

ZKHelper zkHelper = new ZKHelper();

zkHelper.connectZookeeper("172.0.0.1");

zkHelper.regist("/PATH/DATA");

zkHelper.updateNodeData("/PATH/DATA", "Love");

String data = zkHelper.getData("/PATH/DATA");

System.out.println(data);

zkHelper.close();

}

}

以上就是本篇文章的所有内容,你应该知道java与zookeeper小结的方式了吧。还有疑问并且想了解更多java面试常见问题的小伙伴,就请关注我们的网站了解具体吧。

推荐阅读:

zk java数据交互 实例_zookeeper与java交互小结实现示例相关推荐

  1. java继承数组实例_【Java】理解封装、继承、多态和对象数组的综合实例(简易的租车系统,附代码)...

    一.Drive.java(汽车类 - 父类) package Z_CarManger; import java.io.ObjectInputStream.GetField; public abstra ...

  2. Java程序应用实例:“你好 Java”

    编写Java源程序 Java 源程序可以使用任何一个文本编辑器来编写,这里以 Windows 下的记事本为例. 例 1 (1) 新建一个空白记事本,然后如实地输入下列内容. /* *第一个java程序 ...

  3. java调用r实例,Spring Boot中使用RSocket的示例代码

    1. 概述 RSocket 应用层协议支持Reactive Streams 语义, 例如:用RSocket作为HTTP的一种替代方案.在本教程中, 我们将看到RSocket 用在spring boot ...

  4. java解析xml实例_在java中使用dom解析xml的示例分析

    本篇文章介绍了,在java中使用dom解析xml的示例分析.需要的朋友参考下 dom是个功能强大的解析工具,适用于小文档 为什么这么说呢?因为它会把整篇xml文档装载进内存中,形成一颗文档对象树 总之 ...

  5. java数据存在ie中_[Java教程]解决在IE中获取数据的缓存问题,运行环境为node.js

    [Java教程]解决在IE中获取数据的缓存问题,运行环境为node.js 0 2015-11-30 20:00:06 IE下默认会开启缓存策略,不管是页面还是通过ajax请求的数据都会议一个url,u ...

  6. java静态多态实例_[后续] Java 中类的实例化过程之多态篇--(终于发现Java 原来是这样则的玩的)...

    这篇博文依然和大家分享Java 类的实例化过程 值多态篇.和往常一样,直接来上这这阿里的道面试题: 父类的声明如下所示: 1 public classParentD {2 //1.类变量进行初始化 3 ...

  7. java reader类 实例_Java Reader ready()用法及代码示例

    Java中Reader类的ready()方法用于检查此Reader是否已准备好被读取.它返回一个布尔值,该值指示阅读器是否准备就绪. 用法: public void ready() 参数:此方法不接受 ...

  8. java网络编程实例_关于java网络编程的实例代码

    服务器端的写法 package com.chinasofti.corejava.ch22; import java.io.BufferedReader; import java.io.IOExcept ...

  9. java数据过载_垃圾收集过载,Java

    问题是,由于垃圾收集时间的原因,我在性能方面有一些权衡.这个问题可以概括为: public void loop(BlockingQueue queue) { int j = queue.size(); ...

最新文章

  1. python 回溯法 子集树模板 系列 —— 5、取物搭配问题
  2. 理解MySQL--索引与优化(转载)
  3. Liunx 常用命令 (几乎包含所有了)
  4. CentOS 网络设置修改
  5. Detectron:Pytorch-Caffe2-Detectron的一些跟进
  6. ID3的REP(Reduced Error Pruning)剪枝代码详细解释+周志华《机器学习》决策树图4.5、图4.6、图4.7绘制
  7. [css] 有哪些方式可以对一个DOM设置它的CSS样式?
  8. (pytorch-深度学习系列)CNN的多输入通道和多输出通道
  9. 无界面chrome + selenium爬虫
  10. 怎么真正入行Web前端行业?JavaScript五大新特性是什么?
  11. C4D结合AE制作酷炫MG光影动画心得
  12. Jquery.EasyUI datebox控件
  13. vue 官方推荐的好用的三方库
  14. 动易 dw css不对,动易模板常用CSS修改实际操作技巧
  15. VMware虚拟机安装win10 32位
  16. App测试工具大全,收藏这篇就够了
  17. 【74HC595】STM32 74HC595驱动程序
  18. linux 网络配置 nm_controlled,[转帖]NM_CONTROLLED的含义以及网卡配置参数
  19. harbor 下载地址(国内代理)
  20. 【Java学习路线之JavaWeb】Spring MVC框架入门教程

热门文章

  1. java的内容好复杂_Java I/O 好复杂,傻傻分不清楚,别担心,我们有线索了……...
  2. 老程序员来说算法重要不重要
  3. 商品交易系统之---集合竞价与连续竞价区别
  4. Flutter Clipboard 粘贴板使用:
  5. 新手必看——微软认证考试
  6. 儒家的“天下观念”与“文化决定论”
  7. 计算机科学与集成系统做什么,集成电路设计与集成系统专业学什么 附学习科目和课程...
  8. html div跟随页面滚动条滚动,javascript – 当我向下滚动页面时,如何让div跟随我?...
  9. 【日常点滴012】python中pandas入门操作方法整理
  10. 简述CMM与CMMI的关系