在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事件!
相关推荐
《Zookeeper3八本》是针对Apache ZooKeeper的深度学习资料集合,特别关注在Windows操作系统下的部署和使用。Zookeeper是一个分布式协调服务,广泛应用于分布式系统中,如Hadoop、HBase、Kafka等,它提供了命名服务、...
在开始学习之前,读者需要具备良好的Java基础,因为Zookeeper服务器运行于Java虚拟机(JVM)之上,同时还需要对分布式处理和Linux环境有一定的了解。 #### 五、版权与免责声明 本教程版权归TutorialsPoint(I)Pvt.Ltd...
第三部分“实战ZooKeeper”涵盖了第八章至第十章,主要探讨了Zookeeper在实际应用中的部署、运维和调优,以及如何与其他开源项目(如Hadoop、HBase、Kafka等)集成。这部分内容有助于读者将理论知识转化为实际操作...
**八、ZooKeeper的监控和调优** ZooKeeper提供了丰富的监控指标,如请求延迟、节点状态、内存使用等,可以通过JMX或ZooKeeper自带的`zkServer.sh stats`命令进行查看。根据监控数据,可以调整ZooKeeper的配置参数,...
### Zookeeper概述与核心知识点详解 #### 一、Zookeeper简介 **Zookeeper**是一款开源的分布式协调服务框架,主要用于解决分布式系统中的数据...通过对上述知识点的学习,相信你已经对Zookeeper有了更加深入的理解。
- **Zookeeper客户端工具**:学习如何使用Zookeeper自带的客户端工具进行集群管理。 - **Java API操作**:编写Java代码来创建、修改和监控Zookeeper中的节点。 - **分布式协作服务实践**:通过实际项目加深对...
#### 八、Flume环境安装 Apache Flume是一个高可靠、高性能的服务,用于收集、聚合和移动大量日志数据。它的目标是将大量机器产生的日志数据集中起来,并且能够处理日志数据的动态变化。 - **Flume架构**:学习...
八、微服务保护 * 微服务保护的定义和作用 * 微服务保护技术的实现方式(熔断、降级、限流等) * 微服务保护技术的优缺点分析 九、DevOps * DevOps的定义和作用 * DevOps的实现方式(Docker、Kubernetes等) * ...
八、高级话题 1. 负载均衡策略:了解Dubbo内置的负载均衡算法,如Random、RoundRobin等,并根据实际需求选择或自定义策略。 2. 服务治理:理解服务限流、熔断、降级等概念,以及如何在Dubbo中实现这些功能。 3. 集群...
八、 Zookeeper 介绍 Zookeeper 是一个分布式协调服务,提供了配置维护、命名、提供分布式同步和提供组服务等功能。Zookeeper 是 DUBBOX 项目部署的核心组件之一。 九、结论 DUBBOX 项目部署指南提供了详细的部署...
- **学习目标**:了解Zookeeper在分布式系统中的作用,掌握其配置和使用方法。 - **学习途径**:官方文档,实践案例。 **4.2 Kafka** - **学习目标**:深入理解Kafka的工作原理及其在大数据领域的应用价值。 - **...
**Kafka安装配置教程完整版** Kafka是一种分布式流处理平台,由Apache软件...了解并掌握这些基础知识后,你还可以深入学习Kafka的高级特性,如流处理、连接器、Schema Registry等,以实现更复杂的实时数据处理任务。
手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 这套视频课程一共包含十个...第八章 MapReduce的其他操作和yarn 第九章 数仓Hive基本操作 第十章 数仓Hive的其他操作和调优
第八题 Java并发类库提供的线程池有哪几种 分别有什么特点.pdf 第六题 synchronized和ReentLock有什么区别.pdf 第四题 ArrayList LinkedList Vector的区别.pdf docker讲得最清楚.doc Dubbo是什么?能做什么?.doc ...
了解Dubbo、Zookeeper、Spring Cloud等微服务框架的使用和原理,是提升技术深度的重要途径。 七、高并发与性能优化 面试官可能考察你处理高并发场景的能力,如线程池的配置、缓存策略、异步处理等。性能优化方面,...
#### 八、Netty异步IO通信框架 - **Netty异步io通信框架**:学习Netty框架的特点及其在高并发服务器开发中的应用。 - **Zookeeper实现netty分布式架构的高可用**:利用Zookeeper保障Netty服务的高可用性。 #### 九...
这个库的名字"Aimelia"可能是指一个特定的功能或者服务,而数字"8"可能是版本号,表示这是该库的第八个版本。在Python中,更新版本通常意味着修复了之前的问题,增加了新功能,或者优化了性能。 首先,我们关注到这...
学习服务注册与发现(如使用Zookeeper)、服务间通信(RESTful API、RPC等)、熔断、限流、降级等微服务治理策略,有助于构建高可用、可扩展的分布式系统。 六、Zookeeper Zookeeper是一个分布式协调服务,常用于...