1、安装zookeeper

下载zk http://archive.cloudera.com/cdh5/cdh/5/

配置文件tickTime=2000

initLimit=10

syncLimit=5

# zk数据保存目录

dataDir=/usr/local/zookeeper/data

clientPort=2181

启动:

bin/zkServer.sh start

客户端命令行链接:

bin/zkCli.sh

2、拷贝zookeeper下的jar包,到应用程序,并使用maven引入相关jar包

org.slf4j

slf4j-api

1.7.25

org.apache.zookeeper

zookeeper

3.4.5-cdh5.10.0

system

${project.basedir}/lib/zookeeper-3.4.5-cdh5.10.0.jar

java 代码import org.apache.zookeeper.CreateMode;

import org.apache.zookeeper.WatchedEvent;

import org.apache.zookeeper.Watcher;

import org.apache.zookeeper.Watcher.Event.EventType;

import org.apache.zookeeper.ZooDefs.Ids;

import org.apache.zookeeper.ZooKeeper;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

public class ZookeeperContext {

protected static Logger logger = LoggerFactory.getLogger("zk");

public final int SESSION_TIME_OUT = 2000;

public ZooKeeper zk;

/**

* 判断zk的链接链接状态

* */

public boolean isConnected(){

return zk.getState() == ZooKeeper.States.CONNECTED;

}

/**

* 创建zk链接

* **/

public ZookeeperContext(String connectString) {

try {

/**

* connectString 链接zookeeper的Ip和端口,多个用逗号隔开例如:

* 10.0.0.104:2181,10.0.0.105:2181 sessionTimeout

* 客户端和zookeeper链接断开后,数据最长保存的时间 watcher 监控回调,服务器数据修改会回调

*/

zk = new ZooKeeper(connectString, SESSION_TIME_OUT, new ZookeeperWatcher());

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* zk监听,如果服务器端有什么变化到这里接收

* 并继续添加监听

* */

public class ZookeeperWatcher implements Watcher {

@Override

public void process(WatchedEvent event) {

try {

if(null != event.getPath()){

System.out.println( event );

if(event.getType() == EventType.NodeChildrenChanged){

zk.getChildren(event.getPath(), true) ;

}else{

zk.getData(event.getPath(), true, null) ;

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

/**

* 在zk创建数据

* */

public void setData(String path,byte[]data , CreateMode createMode){

try {

if(zk.exists(path, false) == null){

zk.create(path, data, Ids.OPEN_ACL_UNSAFE, createMode) ;

}else{

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

}

zk.getChildren(path, true) ;

} catch (Exception e) {

logger.error("setData", e );

}

}

public static void main(String[] args)throws Exception {

ZookeeperContext context = new ZookeeperContext("10.0.0.104:2181");

while (!context.isConnected()) {

Thread.sleep(3000);

}

context.setData("/root", "1".getBytes(),CreateMode.PERSISTENT);

context.setData("/root/hpgary", "gg".getBytes() , CreateMode.EPHEMERAL);

System.err.println("eee");

System.in.read() ;

}

}

项目运行截图:

java zookeeper_Java zookeeper开发实例相关推荐

  1. java接口api开发实例_APIExample

    Api Example 以API接口开发为例,探索开发的最佳实践 分支列表 分支名称 说明 api-result-sample api-result结合Spring Boot使用实例 默认启用端口 9 ...

  2. java restful接口开发实例_实战:基于Spring Boot快速开发RESTful风格API接口

    写在前面的话 这篇文章计划是在过年期间完成的,示例代码都写好了,结果亲戚来我家做客,文章没来得及写.已经很久没有更新文章了,小伙伴们,有没有想我啊.言归正传,下面开始,今天的话题. 目标 写一套符合规 ...

  3. java restful接口开发实例_Spring Boot 中 10 行代码构建 RESTful 风格应用!

    点击上方"Java后端技术",选择"置顶或者星标" 你关注的就是我关心的! 作者:江南一点雨 微信公众号:牧码小子(ID:a_javaboy) 推荐阅读:10个 ...

  4. Java小程序开发实例!字节跳动Java岗经典面试真题,实战解析

    前言 总有一天你会明白,你的努力终究没有白费 年前辞职,人算不如天算,突如其来的疫情完全把自己的计划给打碎了,面试难度简直不亚于一场江苏高考题,后悔.焦虑不安.失眠成了我的生活状态. 从三月底开始投递 ...

  5. 个人财务管理系统——Java期末项目开发实例

    本次Java期末课程设计题目为个人财务管理系统,在已编辑成型的图形界面上通过添加代码实现用户密码修改.用户登录.账户信息增删改等操作,出于对Java文件和流相关知识考查,本项目使用了文件而非数据库作为 ...

  6. java app后台开发实例_支付宝app-java后台

    @ApiOperation(value= "支付宝预支付", httpMethod= "POST") @PostMapping(value= "/al ...

  7. Java手机游戏开发简明教程 (SunJava开发者认证程序员 郎锐)

    原文发布时间为:2008-07-30 -- 来源于本人的百度文章 [由搬家工具导入] Java手机游戏开发实例简明教程 (SunJava开发者认证程序员 郎锐) 一.手机游戏编写基础 1.手机游戏设计 ...

  8. JAVA :RESTLET开发实例(一)基于JAX-RS的REST服务

    本文转自http://www.cnblogs.com/redmondfan/p/3209290.html,所有权力归原作者所有. RESTLET介绍 Restlet项目为"建立REST概念与 ...

  9. Java Web 后台中餐饮业报表系统开发实例

    本期葡萄城公开课,我们诚邀石家庄品智技术有限公司,高级软件工程师--刘永政先生,为大家在线分享餐饮业报表系统设计模式,以及在 HTML5 报表浏览器.Java 架构中跨平台使用ActiveReport ...

最新文章

  1. div嵌套div 背景图片 不显示的问题
  2. Spring系列之bean的使用
  3. 李沐老师的《动手学深度学习PyTorch》中的d2lzh_python包的安装
  4. 掰一掰GitHub上优秀的大数据项目
  5. 以下属于单例模式的优点的是_单例模式的优缺点和使用场景
  6. mysql本地数据库地址_mysql数据库本地地址
  7. el-descriptions文本水平垂直居中
  8. 麻省理工的服务器位置,美国麻省理工大学位置在哪里?
  9. esxi怎么传输文件到虚拟机_软路由篇2:3865U软路由折腾记——Esxi软虚拟机+OpenWrt教程
  10. Git入门与进阶 - 总览
  11. 微信播放在服务器视频无法播放音乐,解决ios微信浏览器中audio和video音乐视频无法自动播放等问题...
  12. 有图书馆有计算机教室的英语,以my school为题的英语作文有图书馆,办公室,音乐室,教室,体育馆...
  13. 计算机ei浏览器没有了,ie浏览器不见了_我的电脑桌面上怎么IE浏览器没有了啊...
  14. 解决因蓝牙驱动版本问题无法升win10问题 (附 WIN7升级WIN10超详细步骤 及 升级后个别问题软件处理方法)
  15. My future of programming
  16. mysql+php+模板+条目_html模板
  17. python高级编程
  18. 全力推进加速到来的机器人时代 2022
  19. m车载自组织网络(Vehicular Ad-hoc Network,VANET)通信系统的matlab仿真
  20. 关于TCP同时打开-无需Listener的TCP连接建立过程

热门文章

  1. BitCask 持久化hash存储引擎 原理介绍
  2. leetcode-55 跳跃游戏
  3. Linux命令行与shell脚本编程大全:第2版
  4. shell脚本中判断上一个命令是否执行成功
  5. Ubuntu终端命令行缩短显示路径
  6. 2016多校赛2 A 数学推公式 E 极角排序,组合数(待补) L dp+bitset优化
  7. bzoj 4771: 七彩树 树链的并+可持久化线段树
  8. web标准,我们去向何方?一些想法...
  9. css布局中的居中问题
  10. DataGrid连接Access的快速分页法(1)——需求与现状