zookeeper --- (查询节点示例)

 

Curator 是 Netflix 公司开源的一套 zookeeper 客户端框架,解决了很多 Zookeeper 客户端非常底层的细节开发工作,

包括连接重连、反复注册 Watcher 和 NodeExistsException 异常等。

Curator 包含了几个包:

curator-framework:对 zookeeper 的底层 api 的一些封装。

curator-client:提供一些客户端的操作,例如重试策略等。

curator-recipes:封装了一些高级特性,如:Cache 事件监听、选举、分布式锁、分布式计数器、分布式 Barrier 等。

 

package com..zookeeper.GWdemo;

import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.zookeeper.data.Stat;

/**
 * 官网示例--读取数据
 */
public class CuratorDemo {

    // 从zookeeper 读取数据,  /runoob节点必须存在
    public static void main(String[] args) throws Exception {
        CuratorFramework curatorFramework=CuratorFrameworkFactory.
                builder().connectString("127.0.0.1:2181," +
                "127.0.0.1:2182,127.0.0.1:2183").
                sessionTimeoutMs(4000).retryPolicy(new
                ExponentialBackoffRetry(1000,3)).
                namespace("").build();
        curatorFramework.start();
        Stat stat=new Stat();

        byte[] bytes = curatorFramework.getData().storingStatIn(stat).forPath("/runoob");
        //有中文,先多试几种编码!
        System.out.println("读取输出 : "+new String(bytes,"GBK"));
        System.out.println("读取输出 : "+new String(bytes,"UTF-8"));
        System.out.println("读取输出 : "+new String(bytes,"GB2312"));
        System.out.println("读取输出 : "+new String(bytes,"ISO-8859-1"));
        curatorFramework.close();
    }
}

 

结果:

 

posted @ 2021-04-01 17:49  Li&Fan  阅读(353)  评论(0编辑  收藏  举报