在ubutun上用了一下ZK的java的api.感觉不错,挺好用的.当然首先要启动ZK服务器.
然后需要向Eclipse工程中导入三个包:
最后看看代码:
package com.wjy.zk; import java.io.IOException; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.ZooDefs.Ids; import org.apache.zookeeper.ZooKeeper; /** * ZooKeeper Java Api 使用样例<br> * ZK Api Version: 3.4.3 * * @author 王吉元 */ public class JavaApiSample { private static final int CLIENT_PORT = 4180; private static final int CONNECTION_TIMEOUT = 5000; public static void main(String args[]) { // 创建一个与服务器的连接 ZooKeeper zk; try { zk = new ZooKeeper("localhost:" + CLIENT_PORT, CONNECTION_TIMEOUT, new Watcher() { // 监控所有被触发的事件 public void process(WatchedEvent event) { System.out.println("已经触发了" + event.getType() + "事件!"); } }); // 创建一个目录节点 zk.create("/testRootPath", "testRootData".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); // 创建一个子目录节点 zk.create("/testRootPath/testChildPathOne", "testChildDataOne".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); System.out.println(new String(zk.getData("/testRootPath", false, null))); // 取出子目录节点列表 System.out.println(zk.getChildren("/testRootPath", true)); // 修改子目录节点数据 zk.setData("/testRootPath/testChildPathOne", "modifyChildDataOne".getBytes(), -1); // 若这里参数改为false,则删除testRootPath时不会触发NodeDeleted事件 System.out.println("目录节点状态:[" + zk.exists("/testRootPath", true) + "]"); // 创建另外一个子目录节点 zk.create("/testRootPath/testChildPathTwo", "testChildDataTwo".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); // 修改子节点数据不会出发NodeChildrenChanged事件 zk.setData("/testRootPath/testChildPathTwo", "I am node two".getBytes(), -1); System.out.println(new String(zk.getData( "/testRootPath/testChildPathTwo", true, null))); // 删除子目录节点 zk.delete("/testRootPath/testChildPathTwo", -1); zk.delete("/testRootPath/testChildPathOne", -1); // 删除父目录节点 zk.delete("/testRootPath", -1); // 关闭连接 zk.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (KeeperException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //运行结果: 已经触发了None事件! testRootData [testChildPathOne] 目录节点状态:[60,60,1403099080440,1403099080440,0,1,0,0,12,1,61 ] 已经触发了NodeChildrenChanged事件! I am node two 已经触发了NodeDeleted事件! 已经触发了NodeDeleted事件!
相关推荐
自己整理的ZooKeeper学习笔记,适合刚刚接触ZooKeeper的人学习
zookeeper windows
zookeeper学习笔记
3天精通zookeeper视频详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 课程内容: zookeeper简介 zookeeper数据模型 zookeeper单机安装 zookeeper常用shell命令 zookeeper的Acl权限控制 zookeeper...
在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据。如果在创建znode时Flag设置为EPHEMERAL,那么当创建这个znode的节点和Zookeeper失去连接后,这个znode将不再存在在...
java ZooKeeper学习笔记\ZooKeeper原理、运用
zookeeper 学习资料 中篇
zookeeper学习用Demo,包含zookeeper的各种使用案例 zookeeper学习用Demo,包含zookeeper的各种使用案例
ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,它提供了一项基本服务:**分布式锁服务**。由于ZooKeeper的开源特性,后来我们的开发者在分布式锁的基础上,摸索了出了其他的使用方法:**...
zookeeper学习知识点, 脑图
Zookeeper学习笔记
zookeeper学习视频
zookeeper 学习资料 下篇
zookeeper 学习资料 上篇
自己学习zookeeper时的用过学习资料,很不全,但都是这么过来的。
zookeeper一站式学习资料包含国内首部Zookeeper从入门到精通+搜索引擎等一条龙学习资料以及视频讲解包含笔记代码资源
本文适合但不限于软件开发人员阅读。本文档能够使阅读者对zookeeper有一个宏观且全面的了解,内容主要包含zookeeper架构、数据模型、读写及工作原理、典型应用场景、指令汇总等,
Zookeeper学习 Zookeeper是一个由Java编写并开源的,为分布式系统提供协调服务的框架. Zookeeper概述 Zookeeper最早起源于雅虎研究院的一个小组.当时研究人员发现,在雅虎内部的很多系统基本都依赖一个类似的系统来...
基于 Zookeeper部署微服务,实现前后端分离,提高开发效率。
主要介绍了zookeeper 的概述,特点,作用,角色,安装,shell命令