zoukankan      html  css  js  c++  java
  • zookeeper

    基本概念

    zookeeper是一个分布式应用程序协调服务,它是集群的管理者,监视着集群的各个节点状态。

    zookeeper文件系统

    Zookeeper提供一个多层级的节点命名空间,类似文件系统。zookeeper为了保证高吞吐量,在内存中维护了文件树。四种类型的节点:

    持久化目录节点:客户端与zookeeper断开连接后,该节点依旧存在 

    持久化顺序目录节点:客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号

    临时目录节点:客户端与zookeeper断开连接后,该节点被删除 

    临时顺序目录节点:客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号

    zookeeper通知机制

    client端会对某个znode建立一个watcher事件,当该znode发生变化时,这些client会收到zk的通知,然后client可以根据znode变化来做出业务上的改变等。

    zookeeper协议

    ZAB协议是为zookeeper专门设计的一种支持故障恢复的原子广播协议,采用Paxos算法,一种基于leader、follower模型的算法。

    zookeeper集群配置

     集群中每个机子都需要安装zookeeper

     

     下载:http://archive.apache.org/dist/zookeeper/

     安装:

    tar -zxf zookeeper-3.4.5.tar.gz -C /usr/develop

     配置存储数据和日志:

    cd /usr/develop/zookeeper-3.4.5
    mkdir data
    mkdir logs

    配置zoo.cfg

    tickTime=2000
    dataDir=/usr/develop/zookeeper-3.4.5/data
    dataLogDir=/usr/develop/zookeeper-3.4.5/logs
    clientPort=2181

    启动和停止

    进入bin目录:
    ./zkServer.sh start
    ./zkServer.sh stop
    ./zkServer.sh restart
    ./zkServer.sh status
    

     客户端

    • zkCli.sh

        可使用./zkCli.sh -server localhost来连接到Zookeeper服务上。使用ls /可查看根节点下有哪些子节点,可以双击Tab键查看更多命令。

    • Java客户端

        可创建org.apache.zookeeper.ZooKeeper对象来作为zk的客户端,注意,java api里创建zk客户端是异步的,为防止在客户端还未完成创建就被使用的情况,这里可以使用同步计时器,确保zk对象创建完成再被使用。

    • C客户端

        可以使用zhandle_t指针来表示zk客户端,可用zookeeper_init方法来创建。可在ZK_HOMEsrccsrc cli.c查看部分示例代码。

  • 相关阅读:
    php环境搭建工具包推荐
    Android视频直播解决方案(rstp、udp)
    软件版本号命名
    附加数据库失败,无法升级数据库,因为它是只读的
    Web Api如何传递POST请求
    找回Reshaprer的Alt+Enter快捷键的方法
    asp.net 实现在线打印功能,jQuery打印插件PrintArea实现自动分页
    asp.net 回发或回调参数无效的各种情况分析及解决办法
    MQTT, XMPP, WebSockets还是AMQP?泛谈实时通信协议选型 good
    echarts 专题
  • 原文地址:https://www.cnblogs.com/sjp007/p/10149870.html
Copyright © 2011-2022 走看看