文档章节

ZooKeeper 基本API使用

闪电
 闪电
发布于 2015/05/10 00:08
字数 255
阅读 16
收藏 0
/**
 *
 * @author zhangwei_david
 * @version $Id: ZKDemo.java, v 0.1 2015年5月2日 上午9:10:56 zhangwei_david Exp $
 */
public class ZKDemo {

    private static CountDownLatch latch = new CountDownLatch(1);

    private static ZooKeeper      zk    = null;

    private static String         path  = "/zk-demo";

    /**
     *
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        zk = new ZooKeeper("localhost:2181", 5000, new Watcher() {

            public void process(WatchedEvent event) {
                if (KeeperState.SyncConnected == event.getState()) {
                    //如果客户端已经建立连接闭锁减一
                    latch.countDown();
                }
            }
        });
        // 等待zk实例创建完成
        latch.await();
        // 如果该节点不存在则创建持久化的节点
        if (zk.exists(path, true) == null) {
            zk.create(path, "".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        }
        //创建临时节点
        zk.create(path + "/test", "test".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);
        // 删除节点
        zk.delete(path + "/test", 0);
        // 异步创建临时节点
        zk.create(path + "/test", "123".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL,
            new StringCallback() {

                public void processResult(int rc, String path, Object ctx, String name) {
                    System.out.println("result code=" + rc + ", path=" + path + " context=" + ctx
                    + ", name=" + name);
                }
            }, "Test Context");

        TimeUnit.SECONDS.sleep(3);
        // 更新数据
        zk.setData(path + "/test", "testData".getBytes(), -1);
        zk.create(path + "/test2", "123".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);
        // 获取节点
        List<String> znodes = zk.getChildren(path, true);
        // 获取所有节点下的数据
        Stat stat = new Stat();
        for (String str : znodes) {
            byte[] data = zk.getData(path + "/" + str, true, stat);
            System.out.println("获取节点:" + str + " 的数据是:" + new String(data));
        }
    }

}

 

 

本文转载自:http://zhangwei-david.iteye.com/blog/2207872

闪电
粉丝 74
博文 392
码字总数 6789
作品 0
海淀
技术主管
私信 提问
ZooKeeper分布式专题与Dubbo微服务入门

ZooKeeper分布式专题与Dubbo微服务入门 网盘地址:https://pan.baidu.com/s/1TN6BlftB2uvvyVR7IDmODQ 密码: e6zt 备用地址(腾讯微云):https://share.weiyun.com/5539X2S 密码:65b36i Zo...

人气王子333
2018/04/17
0
0
ZooKeeper教程资源收集(简介/原理/示例/解决方案)

菩提树下的杨过: ZooKeeper 笔记(1) 安装部署及hello world ZooKeeper 笔记(2) 监听数据变化 ZooKeeper 笔记(3) 实战应用之【统一配置管理】 ZooKeeper 笔记(4) 实战应用之【消除单点故障】...

easonjim
2017/09/05
0
0
zookeeper java客户端使用

ZooKeeper是一个优秀的分布式协同工具,很多分布式项目都基于它进行架构设计,不过要想要对其有一个深入的理解(如果你想阅读其源代码),对其客户端API的熟悉必不可少。下面就简要记录一下Z...

我就是我110
2015/08/13
0
0
ZooKeeper学习笔记四 ZooKeeper基本使用

Windows单机版本安装 下载zookeeper windows3.3.6 把conf/zoo_sample.cfg改名为zoo.cfg 1、tickTime:这个时间是作为Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每...

xundh
2018/04/27
0
0
ZooKeeper 使用 ZKClient 获取子节点列表

ZkClient 是一个开源软件,也托管在 github。它封装了 zookeeper 原生 API。 使用 先需要在 javaws 网站上下载 ZKClient 的 jar 包。 注意 中的 IP 地址应该和 中配置的 IP 地址一致,且在 ...

兔之
2015/10/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Jenkins系列_插件安装及报错处理

进入Jenkins之后我们可以进行插件的安装,插件管理位于以下模块: 发现上面报了一堆错误,是因为插件的依赖没有安装好,那么这一节,就先把这些错误解决掉吧。解决完成后,也就基本会使用插件...

shzwork
今天
2
0
mysql mysql的所有查询语句和聚合函数(整理一下,忘记了可以随时看看)

查询所有字段 select * from 表名; 查询自定字段 select 字段名 from 表名; 查询指定数据 select * from 表名 where 条件; 带关键字IN的查询 select * from 表名 where 条件 [not] in(元素...

edison_kwok
昨天
9
0
多线程同时加载缓存实现

import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorServi......

暗中观察
昨天
3
0
利用VisualVM 内存查看

准备工作,建几个测试类。等下就是要查看这几个类里面的属性 package visualvm;public class MultiObject { private String str; private int i; MultiObject(String str...

冷基
昨天
2
0
组装一台工作游戏两用机

一、配置清单如下: 分类 项目 价格(元) 主板 华硕(ASUS)TUF Z370-PLUS GAMING II 电竞特工 Z370二代 支持9代CPU 1049 CPU 英特尔(Intel) i7 8700K 酷睿六核 盒装CPU处理器 2640 风扇 九...

mbzhong
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部