`

zookeeper学习(八)

 
阅读更多

   在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事件!

 
 

  • 大小: 22.9 KB
  • 大小: 7.8 KB
分享到:
评论

相关推荐

    zookeeper3八本

    《Zookeeper3八本》是针对Apache ZooKeeper的深度学习资料集合,特别关注在Windows操作系统下的部署和使用。Zookeeper是一个分布式协调服务,广泛应用于分布式系统中,如Hadoop、HBase、Kafka等,它提供了命名服务、...

    zookeeper指南

    在开始学习之前,读者需要具备良好的Java基础,因为Zookeeper服务器运行于Java虚拟机(JVM)之上,同时还需要对分布式处理和Linux环境有一定的了解。 #### 五、版权与免责声明 本教程版权归TutorialsPoint(I)Pvt.Ltd...

    ZooKeeper-分布式过程协同技术详解 PDF 高清完整版

    第三部分“实战ZooKeeper”涵盖了第八章至第十章,主要探讨了Zookeeper在实际应用中的部署、运维和调优,以及如何与其他开源项目(如Hadoop、HBase、Kafka等)集成。这部分内容有助于读者将理论知识转化为实际操作...

    ZooKeeper:Zookeeper学习与总结

    **八、ZooKeeper的监控和调优** ZooKeeper提供了丰富的监控指标,如请求延迟、节点状态、内存使用等,可以通过JMX或ZooKeeper自带的`zkServer.sh stats`命令进行查看。根据监控数据,可以调整ZooKeeper的配置参数,...

    zookeeper.docx教程

    ### Zookeeper概述与核心知识点详解 #### 一、Zookeeper简介 **Zookeeper**是一款开源的分布式协调服务框架,主要用于解决分布式系统中的数据...通过对上述知识点的学习,相信你已经对Zookeeper有了更加深入的理解。

    Hadoop学习必看路线图2.pdf

    - **Zookeeper客户端工具**:学习如何使用Zookeeper自带的客户端工具进行集群管理。 - **Java API操作**:编写Java代码来创建、修改和监控Zookeeper中的节点。 - **分布式协作服务实践**:通过实际项目加深对...

    八斗学习材料.docx,hadoop的 学习体系总结

    #### 八、Flume环境安装 Apache Flume是一个高可靠、高性能的服务,用于收集、聚合和移动大量日志数据。它的目标是将大量机器产生的日志数据集中起来,并且能够处理日志数据的动态变化。 - **Flume架构**:学习...

    服务框架学习路线 ppt 资料

    八、微服务保护 * 微服务保护的定义和作用 * 微服务保护技术的实现方式(熔断、降级、限流等) * 微服务保护技术的优缺点分析 九、DevOps * DevOps的定义和作用 * DevOps的实现方式(Docker、Kubernetes等) * ...

    dubbo安装使用教程

    八、高级话题 1. 负载均衡策略:了解Dubbo内置的负载均衡算法,如Random、RoundRobin等,并根据实际需求选择或自定义策略。 2. 服务治理:理解服务限流、熔断、降级等概念,以及如何在Dubbo中实现这些功能。 3. 集群...

    DUBBOX项目部署指南.pdf

    八、 Zookeeper 介绍 Zookeeper 是一个分布式协调服务,提供了配置维护、命名、提供分布式同步和提供组服务等功能。Zookeeper 是 DUBBOX 项目部署的核心组件之一。 九、结论 DUBBOX 项目部署指南提供了详细的部署...

    大数据开发资源.docx

    - **学习目标**:了解Zookeeper在分布式系统中的作用,掌握其配置和使用方法。 - **学习途径**:官方文档,实践案例。 **4.2 Kafka** - **学习目标**:深入理解Kafka的工作原理及其在大数据领域的应用价值。 - **...

    kafka安装配置教程完整版

    **Kafka安装配置教程完整版** Kafka是一种分布式流处理平台,由Apache软件...了解并掌握这些基础知识后,你还可以深入学习Kafka的高级特性,如流处理、连接器、Schema Registry等,以实现更复杂的实时数据处理任务。

    史上最全面的hadoop入门视频教程

    手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 这套视频课程一共包含十个...第八章 MapReduce的其他操作和yarn 第九章 数仓Hive基本操作 第十章 数仓Hive的其他操作和调优

    java面试笔试资料包括JAVA基础核心知识点深度学习Spring面试题等资料合集.zip

    第八题 Java并发类库提供的线程池有哪几种 分别有什么特点.pdf 第六题 synchronized和ReentLock有什么区别.pdf 第四题 ArrayList LinkedList Vector的区别.pdf docker讲得最清楚.doc Dubbo是什么?能做什么?.doc ...

    Java架构面试专题汇总(含答案)和学习笔记.zip

    了解Dubbo、Zookeeper、Spring Cloud等微服务框架的使用和原理,是提升技术深度的重要途径。 七、高并发与性能优化 面试官可能考察你处理高并发场景的能力,如线程池的配置、缓存策略、异步处理等。性能优化方面,...

    大数据课程体系

    #### 八、Netty异步IO通信框架 - **Netty异步io通信框架**:学习Netty框架的特点及其在高并发服务器开发中的应用。 - **Zookeeper实现netty分布式架构的高可用**:利用Zookeeper保障Netty服务的高可用性。 #### 九...

    PyPI 官网下载 | Aimelia-8.tar.gz

    这个库的名字"Aimelia"可能是指一个特定的功能或者服务,而数字"8"可能是版本号,表示这是该库的第八个版本。在Python中,更新版本通常意味着修复了之前的问题,增加了新功能,或者优化了性能。 首先,我们关注到这...

    JAVA核心知识点.zip

    学习服务注册与发现(如使用Zookeeper)、服务间通信(RESTful API、RPC等)、熔断、限流、降级等微服务治理策略,有助于构建高可用、可扩展的分布式系统。 六、Zookeeper Zookeeper是一个分布式协调服务,常用于...

Global site tag (gtag.js) - Google Analytics