美文网首页
ZooKeeper科普

ZooKeeper科普

作者: EnjoyTheLife | 来源:发表于2017-07-01 14:53 被阅读0次

    最近读了《ZooKeeper:分布式过程协同技术详解》,感觉收获不少,为了加深自己的理解,同时也希望能对其他人有些帮助,在此记录书中较为重要的内容。本文主要关注ZooKeeper的安装与简单的使用。其他内容请关注后续章节。

    ZooKeeper是什么

    Zookeeper 为分布式系统提供了高效可靠且易于使用的协同服务,它可以为分布式应用提供相当多的服务,诸如统一命名服务,配置管理,状态同步和组服务等。 Zookeeper 接口简单,开发人员不必过多地纠结在分布式系统编程难于处理的同步和一致性问题上,你可以使用 Zookeeper 提供的现成(off-the-shelf)服务来实现分布式系统的配置管理,组管理,Leader 选举等功能。具体请参考ZooKeeper Wiki,下图展示了ZooKeeper的整体架构图。

    service

    ZooKeeper安装及启动

    安装过程非常简单,到ZooKeeper官网上下载安装包,然后解压( tar -zxvf zookeeper-x.x.x.tar.gz)到合适的目录下即可。解压之后的目录结构如下

    screenshot
    在bin目录下有对应的启动和关闭脚本,例如Mac环境下可执行如下语句启动和关闭ZooKeeper服务。
    服务器启动 [path to zookeeper]/bin/zkServer.sh start
    服务器关闭 [path to zookeeper]/bin/zkServer.sh stop
    客户端启动 [path to zookeeper]/bin/zkCli.sh

    客户端连接服务器的过程其实就是创建一个会话(session)的过程,而session的状态主要包含Connecting, Connected, Closed, Not_Connected, 状态之间的转换依赖于客服端与服务器之间的各种事件。


    screenshot

    ZooKeeper集群模式

    上述操作都是基于ZooKeeper的单机模式下完成的,一旦ZooKeeper服务器宕机,整个服务就不可用了,所以ZooKeeper提供了集群模式,并且配置非常简单。
    在ZooKeeper跟目录下创建z1, z2, z3目录,并按照下面的结构分别在z1,z2,z3目录下创建文件或者文件夹,文件myid的内容分别写服务编号,比如z1下可写1, echo 1 > myid.

    screenshot
    z1.cfg的内容按照下面的格式填写,在z2或者z3的目录下,修改对应的文件名和clientPort,
    screenshotscreenshot
    配置结束之后就可启动了。 由于存在仲裁模式,所以至少启动两台,整个服务集群才能被启动过成功。
    cd z1
    [path to zookeeper]/bin/zkServer.sh start ./z1.cfg

    相关文章

      网友评论

          本文标题:ZooKeeper科普

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