博客
关于我
使用zookeeper API实现zookeeper的基本操作
阅读量:281 次
发布时间:2019-03-01

本文共 3624 字,大约阅读时间需要 12 分钟。

参考了网上的一个例子,现在程序可以跑了,但是由于时间原因,明天再做深入研究。

这里先记下参考的例子及其代码()

package zookeeper;import java.util.List;import java.util.concurrent.CountDownLatch;import org.apache.zookeeper.CreateMode;import org.apache.zookeeper.KeeperException;import org.apache.zookeeper.WatchedEvent;import org.apache.zookeeper.Watcher;import org.apache.zookeeper.Watcher.Event.KeeperState;import org.apache.zookeeper.ZooDefs.Ids;import org.apache.zookeeper.ZooKeeper;import org.apache.zookeeper.data.Stat;public class MyZookeeper implements Watcher {	private ZooKeeper zookeeper;	/**	 * 超时时间	 */	private static final int SESSION_TIME_OUT = 2000;	private CountDownLatch countDownLatch = new CountDownLatch(1);	@Override	public void process(WatchedEvent event) {		if (event.getState() == KeeperState.SyncConnected) {			System.out.println("Watch received event");			countDownLatch.countDown();		}	}	/**	 * 连接zookeeper	 * 	 * @param host	 * @throws Exception	 */	public void connectZookeeper(String host) throws Exception {		zookeeper = new ZooKeeper(host, SESSION_TIME_OUT, this);		countDownLatch.await();		System.out.println("zookeeper connection success");	}	/**	 * 创建节点	 * 	 * @param path	 * @param data	 * @throws Exception	 */	public String createNode(String path, String data) throws Exception {		return this.zookeeper.create(path, data.getBytes(),				Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);	}	/**	 * 获取路径下所有子节点	 * 	 * @param path	 * @return	 * @throws KeeperException	 * @throws InterruptedException	 */	public List
getChildren(String path) throws KeeperException, InterruptedException { List
children = zookeeper.getChildren(path, false); return children; } /** * 获取节点上面的数据 * * @param path * 路径 * @return * @throws KeeperException * @throws InterruptedException */ public String getData(String path) throws KeeperException, InterruptedException { byte[] data = zookeeper.getData(path, false, null); if (data == null) { return ""; } return new String(data); } /** * 设置节点信息 * * @param path * 路径 * @param data * 数据 * @return * @throws KeeperException * @throws InterruptedException */ public Stat setData(String path, String data) throws KeeperException, InterruptedException { Stat stat = zookeeper.setData(path, data.getBytes(), -1); return stat; } /** * 删除节点 * * @param path * @throws InterruptedException * @throws KeeperException */ public void deleteNode(String path) throws InterruptedException, KeeperException { zookeeper.delete(path, -1); } /** * 获取创建时间 * * @param path * @return * @throws KeeperException * @throws InterruptedException */ public String getCTime(String path) throws KeeperException, InterruptedException { Stat stat = zookeeper.exists(path, false); return String.valueOf(stat.getCtime()); } /** * 获取某个路径下孩子的数量 * * @param path * @return * @throws KeeperException * @throws InterruptedException */ public Integer getChildrenNum(String path) throws KeeperException, InterruptedException { int childenNum = zookeeper.getChildren(path, false).size(); return childenNum; } /** * 关闭连接 * * @throws InterruptedException */ public void closeConnection() throws InterruptedException { if (zookeeper != null) { zookeeper.close(); } }}
package zookeeper;import java.util.List;/** * Hello world! *  */public class App {	public static void main(String[] args) throws Exception {		MyZookeeper zookeeper = new MyZookeeper();		zookeeper.connectZookeeper("127.0.0.1:2181");		List
children = null; children = zookeeper.getChildren("/"); System.out.println(children); zookeeper.closeConnection(); }}

 

转载地址:http://ydgo.baihongyu.com/

你可能感兴趣的文章
NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
查看>>
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>
NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>
Nim教程【十二】
查看>>
Nim游戏
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NIO三大组件基础知识
查看>>
NIO与零拷贝和AIO
查看>>
NIO同步网络编程
查看>>
NIO基于UDP协议的网络编程
查看>>
NIO笔记---上
查看>>