`
huangyongxing310
  • 浏览: 490248 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

zooKeeper API 简单应用

阅读更多
zooKeeper API 简单应用


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 Api(java)入门与应用 Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储...

    zookeeper-API开发lib

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给用户。...

    Zookeeper 原生api zkClient Curator操作

    ZkClient是一个轻量级的Zookeeper客户端,它对原生API进行了封装,使得操作更加简单易用。主要特点包括: 1. **更友好的API**:ZkClient提供了一些简洁的接口,如`createEphemeral()`、`readData()`、`writeData()`...

    ZooKeeper的简单使用

    在IT行业中,ZooKeeper是一个广泛使用的分布式协调服务,它由...通过阅读提供的博客文章和分析`Demo1.java`和`Demo2.java`的代码,我们可以深入学习ZooKeeper的API用法和实际应用场景,提升在分布式环境下的编程能力。

    Zookeeper分布式应用程序协调服务:zookeeper-3.4.13

    在技术实现上,Zookeeper基于一个简单的模型——**ZNode**。ZNode是Zookeeper中的数据节点,类似于文件系统的文件或目录。每个ZNode都有一套版本控制和ACL(访问控制列表),允许对数据进行读写操作,并且可以监听...

    zookeeper JAVA API.docx

    Apache ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给...

    2. Zookeeper经典应用场景实战(一)

    ZooKeeper 官方提供的 Java 客户端 API 虽然提供了基本的操作,但是存在一些不足之处,例如功能简单、实际开发过程中比较笨重、没有实现重连机制、异常处理烦琐等问题。 为解决这些问题,可以选择使用第三方的 ...

    1、zookeeper3.7.1安装与验证

    Zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给用户。...

    kafka+zookeeper+简单demo

    Kafka是一种高吞吐量、低延迟的分布式消息系统,而ZooKeeper则是一个集中式服务,用于分布式应用程序的配置管理、命名服务、集群同步等。在这个"Kafka + ZooKeeper + 简单demo"中,我们将深入理解这两个工具的结合...

    Zookeeper实现简单的分布式RPC框架

    在IT行业中,分布式系统已经成为大型应用的标准架构,而Zookeeper作为一个强大的分布式协调服务,被广泛应用于构建复杂的分布式环境。本文将深入探讨如何利用Zookeeper实现一个简单的分布式RPC(Remote Procedure ...

    dubbo+zookeeper简单示例.rar

    《Dubbo与Zookeeper整合应用基础教程》 在分布式服务框架中,Dubbo和Zookeeper是两个非常重要的组件。Dubbo是一款高性能、轻量级的Java远程服务调用框架,而Zookeeper则是一个分布式的、开放源码的分布式应用程序...

    08、 Zookeeper部署及典型应用 作业

    - **实现方式:** 可以将管理员修改的 Hadoop conf 目录打包成 `conf.zip`,然后使用 Zookeeper API 将此文件上传到 `/conf` 节点中。 2. **客户端监听者 HadoopConfigWatcher:** - **作用:** 运行在各个节点上...

    springboot zookeeper ,微服务框架简单实现

    在"springboot zookeeper 微服务框架简单实现"的项目中,我们可能会做以下工作: 1. **集成Zookeeper**: 首先,我们需要在SpringBoot应用中添加Zookeeper的相关依赖,这通常通过在pom.xml文件中引入zookeeper客户端...

    ZooKeeper典型使用场景

    - 创建全局唯一名称:通过调用ZooKeeper的API创建一个全局唯一的路径作为名称,这种方法简单有效,可以广泛应用于各种场景。 #### 四、分布式通知与协调 **场景描述**: ZooKeeper的Watcher机制支持不同系统间的...

    zookeeper指南

    在分布式环境中协调和管理服务是一个复杂的过程,而Zookeeper通过其简单直观的架构与API解决了这一难题,使得开发者能够专注于核心应用逻辑,无需担心应用程序的分布式特性。 #### 二、Zookeeper的起源与发展 ...

    zookeeper客户端原理代码操作应用场景

    总的来说,Zookeeper客户端是实现分布式系统协调的关键工具,理解和熟练使用Zookeeper的客户端API对于构建高可用、高性能的分布式应用至关重要。通过深入学习这些课程和资源,你将能够更好地掌握Zookeeper的使用,并...

    Zookeeper的java原生API

    总的来说,Zookeeper的Java原生API提供了一套完整且强大的工具集,使得开发者能够轻松地构建分布式应用,并实现高效的协调和服务发现。正确理解和熟练运用这些API,对于提升分布式系统的稳定性和可扩展性至关重要。

    zookeeper_demo maven项目:包含原生API、zkclient、Curator操作

    《Zookeeper原生API、ZkClient与Curator在分布式协调中的应用》 Apache ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步...

    zookeeper客户端简单java实现程序

    ZooKeeper的强大在于它的高可用性、一致性保证和丰富的API,使得它成为分布式系统中的重要组件。通过熟练掌握这些基本操作,开发者可以构建复杂的服务发现、配置管理、锁服务等分布式应用场景。

Global site tag (gtag.js) - Google Analytics