`

zookeeper常用API

 
阅读更多

zookeeper常用的api,刚刚接触,写博客备忘

 

package com.my.zookeeper;

import java.io.IOException;
import java.util.List;

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;

public class ZooKeeperAPI {
static ZooKeeper zook = null;
static {
try {
//创建一个Zookeeper实例,第一个参数为目标服务器地址和端口,
//第二个参数为Session超时时间,
//第三个为节点变化时的回调方法
zook = new ZooKeeper("192.168.229.53:2181", 30000, new Watcher(){
public void process(WatchedEvent e) {
System.out.println("path=" + e.getPath()
+ "state =" + e.getState().name());
}
});

/*try {
zook.exists("/root", true);
} catch (KeeperException e2) {
e2.printStackTrace();
} catch (InterruptedException e2) {
e2.printStackTrace();
}
try {
zook.exists("/root", new Watcher(){
public void process(WatchedEvent e) {
System.out.println("path=" + e.getPath()
+ "state =" + e.getState().name());
}
});
} catch (KeeperException e1) {
e1.printStackTrace();
} catch (InterruptedException e1) {
e1.printStackTrace();
}*/
} catch (IOException e) {
e.printStackTrace();
}
}

void showAPI() {
try {
////创建一个节点root,数据是mydata,不进行ACL权限控制
//节点为永久性的(即客户端shutdown了也不会消失)
zook.create("/root", "mydata".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
//在root下面创建一个childone znode,数据为childone,
//不进行ACL权限控制,节点为永久性的
zook.create("/root/childone", "childone".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}

try {
//取得/root节点下的子节点名称,返回List<String>
List<String> childNodeList = zook.getChildren("/root", true);
System.out.println(childNodeList.size());
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}

//取得/root/childone节点下的数据,返回byte[]
try {
byte[] childData = zook.getData("/root/childone", true, null);
System.out.println(childData.length);
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}

try {
//修改节点/root/childone下的数据,第三个参数为版本,
//如果是-1,那会无视被修改的数据版本,直接改掉
zook.setData("/root/childone", "childonemodify".getBytes(), -1);
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}

try {
//删除/root/childone这个节点,第二个参数为版本,-1的话直接删除,无视版本
zook.delete("/root/childone", -1);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (KeeperException e) {
e.printStackTrace();
}

//关闭session
try {
zook.close();
} catch (InterruptedException e) {
e.printStackTrace();
}
}

public static void main(String[] args) throws KeeperException, InterruptedException, IOException {
//取得gateway-schedule节点下的子节点名称,返回List<String>
List<String> childNodeList = zook.getChildren("/gateway-schedule", true);
for(String s : childNodeList) {
System.out.println("s = " + s);
}
System.out.println(childNodeList.size());
//zook.create("/root", "mydata".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
//zook.create("/root/childone", "child3".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
//zook.create("/root/childtwo", "childtwo".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
//zook.create("/root/child3", "child3".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);
//zook.setData("/root/childtwo", "childtwomodify".getBytes(), -1);

/*byte[] childData = zook.getData("/root/childone", true, null);
System.out.println("childData.length="+childData.length + ",childData=" + new String(childData));*/
//zook.delete("/root/childtwo", -1);

showAllChild();

System.in.read();
}

/**
* show all first nodes
* @throws KeeperException
* @throws InterruptedException
*/
static void showAllChild() throws KeeperException, InterruptedException {
//
List<String> firstNodeList = zook.getChildren("/", true);
for(String s : firstNodeList) {
System.out.println("s = " + s);
}
System.out.println(firstNodeList.size());
}
}

分享到:
评论

相关推荐

    3天全面深入学习zookeeper视频教程

    zookeeper常用shell命令 zookeeper的Acl权限控制 zookeeper的javaApi zookeeper 事件监听机制 zookeeper 集群搭建 一致性协议:zab协议 zookeeper的leader选举 observer角色及其配置 zookeeperAPI连接集群 zookeeper ...

    4、zookeeper的java三种客户端介绍-Curator(crud、事务操作、监听、分布式计数器、分布式锁)

    4、zookeeper的java三种客户端介绍-Curator(crud、事务操作、监听、分布式计数器、分布式锁) ...zookeeper常用的3种java客户端 zookeeper原生Java API ZkClient Apache curator 本文将按照顺序逐一简单介绍其使用。

    支持.Net Core的ZooKeeper异步客户端.zip

    该项目使用了 Apache ZooKeeper .NET async Client 组件,除提供了基本的zk操作,还额外封装了常用的功能以便让.net开发者更好的使用zookeeper。 提供的功能 session过期重连 永久watcher 递归删除...

    Hadoop+Hive+Spark+Kafka+Zookeeper+Flume+Sqoop+Azkaban+Scala

    基于 Zookeeper 搭建 Hadoop 高可用集群 二、Hive 简介及核心概念 Linux 环境下 Hive 的安装部署 CLI 和 Beeline 命令行的基本使用 常用 DDL 操作 分区表和分桶表 视图和索引 常用 DML 操作 数据查询详解 三、Spark ...

    fabric2.x的api的服务(基于fabric go sdk)

    fabric2.x的api的服务(基于fabric go sdk)

    大数据学习路线 大数据技术栈思维导图 大数据常用软件安装指南

    HDFS Java API 的使用 基于 Zookeeper 搭建 Hadoop 高可用集群 Hive Hive 简介及核心概念 Linux 环境下 Hive 的安装部署 Hive CLI 和 Beeline 命令行的基本使用 Hive 常用 DDL 操作 Hive 分区表和分桶表 Hive 视图...

    非常好的大数据入门目资源,分享出来.zip

    HDFS Java API 的使用 基于 Zookeeper 搭建 Hadoop 高可用集群 二、Hive Hive 简介及核心概念 Linux 环境下 Hive 的安装部署 Hive CLI 和 Beeline 命令行的基本使用 Hive 常用 DDL 操作 Hive 分区表和分桶表 Hive ...

    大数据精选入门指南,包括大数据学习路线、大数据技术栈思维导图

    大数据常用软件安装指南 一、Hadoop 分散文件存储系统 —— HDFS 多元计算框架——MapReduce 集群资源管理器 —— YARN Hadoop单机伪集群环境搭建 Hadoop 云服务环境搭建 HDFS使用Shell命令 HDFS Java API的使用 ...

    Java面试宝典PLUS.pdf

    包括JavaSE基础(多态、异常处理、常用API、数据类型、IO操作、集合、多线程和并发库、内部类)、JavaSE高级(反射、动态代理、设计模式&回收机制、加载器、JVM基础、GC基础)、JavaWeb基础(JDBC技术、HTTP协议、...

    毕业设计: 分布式多媒体共享平台,采用分布式系统构架,保证服务的稳定性

    毕业设计: 分布式多媒体共享平台,采用分布式系统构架,保证服务的稳定性 ...Zookeeper,MemCache,Mysql(默认,可选择其他的),Tomcat(默认,可以选择其他的),Maven,JDK 1.7+,dubbo admin,dubbo monito

    hydra:后端一站式微服务框架,提供API、web、websocket,RPC、任务调度、消息消费服务器

    基于golang的后端一站式服务框架hydra致力于为后端软件开发者提供简单的、统一的、完善的服务框架,减少在集群管理、配置管理、服务注册与发现、系统监控、日志归集、链路追踪、安全访问、常用组件等的心智消耗。...

    java软件开发工程师面试题宝典

    java基础、数据类型、编码、运算符、关键字、流程控制语句,面向对象,变量与方法,重写与重载,Java包,IO流,反射,常用API -String相关,包装类相关,集合,多线程 Java Web、设计模式、Spring/Spring MVC、Spring Boot/...

    大数据常用数据库汇总.pdf

    开发者使⽤Web服务请求存储和查 询数据项 (4)Apache Accumulo:Apache Accumulo的有序的、分布式键值数据存储,基于Google的BigTable设计,建⽴在Apache Hadoop、Zookeeper和Thrift技术之上。 (5)Hypertable:...

    Java微服务架构l零从基础到精通高清视频教程全套 163课

    016常用 APT 命令 017Linux 用户和组管理 018查看目录和文件的权限 019更改操作权限 020安装 Java 021安装 Tomcat 022安装 MySQL 023部署项目 第3章 Docker实战开发 042设置镜像标签 024Docker 简介 025Docker ...

    Java微服务架构163课

    016常用 APT 命令 017Linux 用户和组管理 018查看目录和文件的权限 019更改操作权限 020安装 Java 021安装 Tomcat 022安装 MySQL 023部署项目 第3章 Docker实战开发 042设置镜像标签 024Docker 简介 ...

    druid连接池的jar包

    Druid最常用作为GUI分析应用程序提供动力的数据存储,或者用作需要快速聚合的高度并发API的后端。Druid是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到...

    大型分布式网站架构与实践

     1.3.5 ZooKeeper API使用简介 43  1.3.6 zkClient的使用 47  1.3.7 路由和负载均衡的实现 50  1.4 HTTP服务网关 54  第2章 分布式系统基础设施 58  本章主要介绍和解决如下问题:  分布式缓存memcache的...

    新版本SpringCloud2学习手册

    使用Zookeeper来替换Eureka 25 Consistency(一致性), 数据一致更新,所有数据变动都是同步的 Availability(可用性), 好的响应性能 Partition tolerance(分区容忍性) 可靠性 28 客户端负载均衡器 29 客户端负载...

    Hbase+Spring boot实战分布式文件存储

    对本门课程所用到的技术进行概览 1-1 学前必读(助你平稳踩坑,畅学无忧) 1-2 导学 1-3 课程技术分析 第2章 HBase简介与环境部署 介绍HBase是什么,能做什么,有哪些优缺点,适用于哪些应用场景,与常用关系数据库...

Global site tag (gtag.js) - Google Analytics