- 浏览: 502646 次
- 性别:
- 来自: 广州
-
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
zooKeeper API 简单应用
zooKeeperTest.java
AbstractZooKeeper.java
ZooKeeperOperator.java
https://blog.csdn.net/heyutao007/article/details/38741207(ZooKeeper 节点类型)
参考原文:http://okwangxing.iteye.com/blog/598548
zooKeeperTest.java
package com; import java.util.Arrays; public class zooKeeperTest{ public static void main(String[] args) { try { ZooKeeperOperator zkoperator = new ZooKeeperOperator(); zkoperator.connect("114.55.72.173:2181"); byte[] data = new byte[]{'d','a','t','a'}; zkoperator.create("/root",null); System.out.println(Arrays.toString(zkoperator.getData("/root"))); zkoperator.create("/root/child4",data); System.out.println(Arrays.toString(zkoperator.getData("/root/child1"))); zkoperator.create("/root/child3",data); System.out.println(Arrays.toString(zkoperator.getData("/root/child2"))); System.out.println("节点孩子信息:"); zkoperator.getChild("/root"); zkoperator.close(); } catch (Exception e) { e.printStackTrace(); } } }
AbstractZooKeeper.java
package com; import java.io.IOException; import java.util.concurrent.CountDownLatch; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.ZooKeeper; import org.apache.zookeeper.Watcher.Event.KeeperState; public class AbstractZooKeeper implements Watcher { private static final int SESSION_TIME = 2000; protected ZooKeeper zooKeeper; protected CountDownLatch countDownLatch = new CountDownLatch(1); public void connect(String hosts) throws IOException, InterruptedException{ zooKeeper = new ZooKeeper(hosts,SESSION_TIME,this); countDownLatch.await(); } public void process(WatchedEvent event) { if(event.getState() == KeeperState.SyncConnected){ countDownLatch.countDown(); } } public void close() throws InterruptedException{ zooKeeper.close(); } }
ZooKeeperOperator.java
package com; import java.util.Arrays; import java.util.List; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.ZooDefs.Ids; public class ZooKeeperOperator extends AbstractZooKeeper { /** * 创建持久态的znode,比支持多层创建.比如在创建/parent/child的情况下,无/parent.无法通过. * @param path eg: /parent/child1 * @param data * @throws InterruptedException * @throws KeeperException */ public void create(String path,byte[] data) throws KeeperException, InterruptedException{ this.zooKeeper.create(path, data, Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT/*此处创建的为持久态的节点,可为瞬态*/); } /** * 获取节点的孩子信息 * @param path * @throws KeeperException * @throws InterruptedException */ public void getChild(String path) throws KeeperException, InterruptedException{ try { List<String> children = this.zooKeeper.getChildren(path, false); if (children.isEmpty()) { System.out.printf("没有节点在%s中.", path); return; }else{ System.out.printf("节点%s中存在的节点:\n", path); for(String child: children){ System.out.println(child); } } } catch (KeeperException.NoNodeException e) { System.out.printf("%s节点不存在.", path); throw e; } } public byte[] getData(String path) throws KeeperException, InterruptedException { return this.zooKeeper.getData(path, false,null); } }
https://blog.csdn.net/heyutao007/article/details/38741207(ZooKeeper 节点类型)
参考原文:http://okwangxing.iteye.com/blog/598548
相关推荐
Zookeeper Api(java)入门与应用 Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储...
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给用户。...
ZkClient是一个轻量级的Zookeeper客户端,它对原生API进行了封装,使得操作更加简单易用。主要特点包括: 1. **更友好的API**:ZkClient提供了一些简洁的接口,如`createEphemeral()`、`readData()`、`writeData()`...
在IT行业中,ZooKeeper是一个广泛使用的分布式协调服务,它由...通过阅读提供的博客文章和分析`Demo1.java`和`Demo2.java`的代码,我们可以深入学习ZooKeeper的API用法和实际应用场景,提升在分布式环境下的编程能力。
在技术实现上,Zookeeper基于一个简单的模型——**ZNode**。ZNode是Zookeeper中的数据节点,类似于文件系统的文件或目录。每个ZNode都有一套版本控制和ACL(访问控制列表),允许对数据进行读写操作,并且可以监听...
Apache ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给...
ZooKeeper 官方提供的 Java 客户端 API 虽然提供了基本的操作,但是存在一些不足之处,例如功能简单、实际开发过程中比较笨重、没有实现重连机制、异常处理烦琐等问题。 为解决这些问题,可以选择使用第三方的 ...
Zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给用户。...
Kafka是一种高吞吐量、低延迟的分布式消息系统,而ZooKeeper则是一个集中式服务,用于分布式应用程序的配置管理、命名服务、集群同步等。在这个"Kafka + ZooKeeper + 简单demo"中,我们将深入理解这两个工具的结合...
在IT行业中,分布式系统已经成为大型应用的标准架构,而Zookeeper作为一个强大的分布式协调服务,被广泛应用于构建复杂的分布式环境。本文将深入探讨如何利用Zookeeper实现一个简单的分布式RPC(Remote Procedure ...
《Dubbo与Zookeeper整合应用基础教程》 在分布式服务框架中,Dubbo和Zookeeper是两个非常重要的组件。Dubbo是一款高性能、轻量级的Java远程服务调用框架,而Zookeeper则是一个分布式的、开放源码的分布式应用程序...
- **实现方式:** 可以将管理员修改的 Hadoop conf 目录打包成 `conf.zip`,然后使用 Zookeeper API 将此文件上传到 `/conf` 节点中。 2. **客户端监听者 HadoopConfigWatcher:** - **作用:** 运行在各个节点上...
4. **数据操作**:Curator 提供了简单的 API 来读写 ZooKeeper 节点的数据,如 `create()`, `setData()`, `getData()` 等。例如,创建节点和设置数据: ```java client.create().creatingParentsIfNeeded().for...
在"springboot zookeeper 微服务框架简单实现"的项目中,我们可能会做以下工作: 1. **集成Zookeeper**: 首先,我们需要在SpringBoot应用中添加Zookeeper的相关依赖,这通常通过在pom.xml文件中引入zookeeper客户端...
- 创建全局唯一名称:通过调用ZooKeeper的API创建一个全局唯一的路径作为名称,这种方法简单有效,可以广泛应用于各种场景。 #### 四、分布式通知与协调 **场景描述**: ZooKeeper的Watcher机制支持不同系统间的...
在分布式环境中协调和管理服务是一个复杂的过程,而Zookeeper通过其简单直观的架构与API解决了这一难题,使得开发者能够专注于核心应用逻辑,无需担心应用程序的分布式特性。 #### 二、Zookeeper的起源与发展 ...
总的来说,Zookeeper客户端是实现分布式系统协调的关键工具,理解和熟练使用Zookeeper的客户端API对于构建高可用、高性能的分布式应用至关重要。通过深入学习这些课程和资源,你将能够更好地掌握Zookeeper的使用,并...
总的来说,Zookeeper的Java原生API提供了一套完整且强大的工具集,使得开发者能够轻松地构建分布式应用,并实现高效的协调和服务发现。正确理解和熟练运用这些API,对于提升分布式系统的稳定性和可扩展性至关重要。
《Zookeeper原生API、ZkClient与Curator在分布式协调中的应用》 Apache ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步...