美文网首页
Zookeeper 编程

Zookeeper 编程

作者: 币来币往 | 来源:发表于2019-05-13 20:15 被阅读0次

zookeeper提供了两种语言的api,一种是java的一种是c的,这里我们学习java api, c语言的api接口和java的结构是一样的。
在使用之前首先我们需要将用到的jar包放到classpath以方便编程。
这里通过运行bin/zkEnv.sh 即可将所有jar全部加入到CLASSPATH里面

. $PATH_TO_ZK/bin/zkEnv.sh
vagrant@vagrant-ubuntu-trusty-64:~$ echo $CLASSPATH
/usr/bin/../zookeeper-server/target/classes:/usr/bin/../build/classes:/usr/bin/../zookeeper-server/target/lib/*.jar:/usr/bin/../build/lib/*.jar:/usr/bin/../lib/*.jar:/usr/bin/../zookeeper-*.jar:/usr/bin/../zookeeper-server/src/main/resources/lib/*.jar:/usr/bin/../etc/zookeeper:.:/usr/lib/jvm/java-11-oracle/lib:/usr/lib/jvm/java-11-oracle/lib/tools.jar

zookeeper客户端和服务器通过建立连接,创建sesssion来交互

Zookeeper zk = new ZooKeeper(hostPort, 15000, log::info);

其中第一个参数为server的ip和端口号,如127.0.0.1:2181
第二个参数为session失效时间,单位为ms, 当ZooKeeper在指定的时间(15s)无法和client连接是,就会认为连接失效。
第三个参数是一个Watcher,用来获取并处理session相关的event。接口如下,只有一个方法,所以这里我们直接用了一个lambda表达式来表示它。

public interface Watcher {
    void process(WatchedEvent event);
}

我们再ZooKeeper basic里面介绍的那些客户端命令,都有对应的API实现版本,同步版和异步版,都有。
我们写代码的时候通常是使用异步版,因为它更好效,也不要我们来处理很多异常,代码也更简洁。所以这里我们只介绍异步版实现。

  • 创建节点
void create(String path,    byte[] data,    List<ACL> acl,   
 CreateMode createMode,    AsyncCallback.StringCallback cb,     Object ctx)

zk.create("/master", serverId.getBytes(), OPEN_ACL_UNSAFE,
                CreateMode.EPHEMERAL, this::masterCreateCallback, null);

第一个参数为要创建znode的路径,znode的数据, 第三个参数为认证方式, 第四个参数是创建模式, 第五个参数是回调函数,第六个参数是回调函数的参数。
我这里提供了一个demo程序大家可以参考,来学习这些api的使用,看代码更容易理解 git地址如下,
大家可以git clone https://github.com/Jaler-Wang/ZooKeeperDemo.git
获取。

相关文章

  • Zookeeper 编程

    zookeeper提供了两种语言的api,一种是java的一种是c的,这里我们学习java api, c语言的ap...

  • Zookeeper之JAVA API学习笔记

    Zookeeper提供了多种编程语言API来编写Zookeeper(后面简称zk)客户端程序,典型的如JAVA和C...

  • ZooKeeper 配置管理(五)

    前面我们学习了ZooKeeper的理论部分还有编程部分,当然最开始也安装和运行了ZooKeeper的单机和集群模式...

  • ZooKeeper 分布式数据结构(四)

    前面说了ZooKeeper一些基础性的东西,包括客户端编程框架。这里我们来探索如何更好的运用ZooKeeper。开...

  • JAVA编程访问Zookeeper

    1、依赖类库 在JAVA程序中调用Zookeeper时,首先需要引入Zookeeper类库:  zookeepe...

  • 使用ZooKeeper编程 - 快速教程

    在这份教程中,我们展示使用 ZooKeeper 的 barriers 和生产者-消费者队列的简单实现。我们将各自的...

  • Zookeeper开发(07)总结

    我们在zkCli⼯具中使⽤的命令与我们通过ZooKeeper编程所使⽤的API⾮常接近,因此,zkCli⼯具在初期...

  • 使用Docker搭建单机Kafka

    Docker搭建Zookeeper 获取zookeeper 运行zookeeper 自此zookeeper搭建完毕...

  • zookeeper笔记

    zookeeper复习 Zookeeper概念简介 zookeeper集群机制 安装 zookeeper特性 zo...

  • 2019-01-19Zookeeper介绍及安装部署

    Zookeeper介绍及安装部署 本节内容: Zookeeper介绍 Zookeeper特点 Zookeeper应...

网友评论

      本文标题:Zookeeper 编程

      本文链接:https://www.haomeiwen.com/subject/bgnxaqtx.html