为了账号安全,请及时绑定邮箱和手机立即绑定

Zookeeper Java 客户端搭建

标签:
大数据

本教程使用的 IDE 为 IntelliJ IDEA,创建一个 maven 工程,命名为 zookeeper-demo,并且引入如下依赖,可以自行在maven中央仓库选择合适的版本,介绍原生 API 和 Curator 两种方式。

IntelliJ IDEA 相关介绍:

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope></dependency><dependency>
  <groupId>org.apache.zookeeper</groupId>
  <artifactId>zookeeper</artifactId>
  <version>3.4.8</version></dependency><dependen
cy>
  <groupId>org.apache.curator</groupId>
  <artifactId>curator-framework</artifactId>
  <version>4.0.0</version></dependency><dependency>
  <groupId>org.apache.curator</groupId>
  <artifactId>curator-recipes</artifactId>
  <version>4.0.0</version></dependency>


maven 工程目录结构:

https://img1.sycdn.imooc.com//609540820001c89604560451.jpg

一、客户端的 zookeeper 原生 API

使用 zookeeper 原生 API,连接上一教程搭建的三台服务组成的集群,因为连接需要时间,用 countDownLatch 阻塞,等待连接成功,控制台输出连接状态!

实例

...public static void main(String[] args) {    try {        final CountDownLatch countDownLatch=new CountDownLatch(1);        ZooKeeper zooKeeper=            new ZooKeeper("192.168.3.33:2181," +                    "192.168.3.35:2181,192.168.3.37:2181",                    4000, new Watcher() {                @Override                public void process(WatchedEvent event) {                    if(Event.KeeperState.SyncConnected==event.getState()){                        //如果收到了服务端的响应事件,连接成功                        countDownLatch.countDown();                    }                }            });        countDownLatch.await();        //CONNECTED        System.out.println(zooKeeper.getState());        }}...

控制台输出 connected 显示连接成功!

https://img1.sycdn.imooc.com//6095408300015ce209170305.jpg

简单示例添加节点 API:

zooKeeper.create("/runoob","0".getBytes(),ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);

提示:更多命令功能使用请参考本教程后面章节。

同时在服务端终端执行命令,显示设置成功。

https://img1.sycdn.imooc.com//609540830001882a03430200.jpg

二、客户端的curator连接

Curator 是 Netflix 公司开源的一套 zookeeper 客户端框架,解决了很多 Zookeeper 客户端非常底层的细节开发工作,包括连接重连、反复注册 Watcher 和 NodeExistsException 异常等。

Curator 包含了几个包:

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

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

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

简单使用示例:

实例

上一步设置了 /runoob 节点值,所以控制台输出。

https://img1.sycdn.imooc.com//609540830001407b10190293.jpg

curator 相关参考链接: http://curator.apache.org/

作者公众号:一起写程序

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消