• zookeeper 特点、使用场景及安装,配置文件解析


    本文为博主原创,未经允许不得转载:

    1. Zookeeper 特点:

      ZooKeeper是用于分布式应用程序的协调服务。它公开了一组简单的API,分布式应用程序可以基于这些API用于同步,节点状态、配置等信息、服务注册等信息。

      ZooKeeper 为我们提供了高可用、高性能、稳定的分布式数据一致性解决方案,通常被用于实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、

    集群管理、Master 选举、分布式锁和分布式队列等功能。ZooKeeper 将数据保存在内存中,性能是非常棒的。 在“读”多于“写”的应用程序中尤其地高性能,

    因为“写”会导致所有的服务器间同步状态。(“读”多于“写”是协调服务的典型场景)。

    2. ZooKeeper 典型应用场景:

    1. 分布式锁 : 通过创建唯一节点获得分布式锁,当获得锁的一方执行完相关代码或者是挂掉之后就释放锁。
    2. 命名服务 :可以通过 ZooKeeper 的顺序节点生成全局唯一 ID
    3. 数据发布/订阅 :通过 Watcher 机制 可以很方便地实现数据发布/订阅。当你将数据发布到 ZooKeeper 被监听的节点上,其他机器可通过监听 ZooKeeper 上节点的变化来实现配置的动态更新。

      实际上,这些功能的实现基本都得益于 ZooKeeper 可以保存数据的功能,但是 ZooKeeper 不适合保存大量数据,这一点需要注意

    3. 有哪些著名的开源项目用到了 ZooKeeper?

    1. Kafka : ZooKeeper 主要为 Kafka 提供 Broker 和 Topic 的注册以及多个 Partition 的负载均衡等功能。
    2. Hbase : ZooKeeper 为 Hbase 提供确保整个集群只有一个 Master 以及保存和提供 regionserver 状态信息(是否在线)等功能。
    3. Hadoop : ZooKeeper 为 Namenode 提供高可用支持。

    4. znode 节点

      zookeeper 中数据基本单元叫节点,节点之下可包含子节点,最后以树级方式程现。每个节点拥有唯一的路径path。客户端基于PATH上传节点数据,zookeeper 收到后

    会实时通知对该路径进行监听的客户端。

      ZooKeeper 主要是用来协调服务的,而不是用来存储业务数据的,所以不要放比较大的数据在 znode 上,ZooKeeper 给出的上限是每个结点的数据大小

    最大是 1M。

    5. zookeeper 的安装与启动

      1. 进入zookeeper 官网:https://zookeeper.apache.org/releases.html,选择并下载指定的zookeeper 版本安装包:

                                  

        2.  下载并解压

    wget https://downloads.apache.org/zookeeper/zookeeper-3.4.11/apache-zookeeper-3.4.11.tar.gz
    tar ‐zxvf zookeeper‐3.4.11.tar.gz

        3.  配置zookeeper 配置文件,并启动 zookeeper 

     cp conf/zoo_sample.cfg conf/zoo.cfg
    bin/zkServer.sh start   # 启动zookeeper
    bin/zkCli.sh
    ls / #查看zk的根目录相关节点

      

    6. zookeeper 配置文件说明:

    # zookeeper时间配置中的基本单位 (毫秒)
    tickTime=2000
    # 允许follower初始化连接到leader最大时长,它表示tickTime时间倍数 即:initLimit*tickTime
    initLimit=10
    # 允许follower与leader数据同步最大时长,它表示tickTime时间倍数 
    syncLimit=5
    #zookeper 数据存储目录
    dataDir=/tmp/zookeeper
    #对客户端提供的端口号
    clientPort=2181
    #单个客户端与zookeeper最大并发连接数
    maxClientCnxns=60
    # 保存的数据快照数量,之外的将会被清除
    autopurge.snapRetainCount=3
    #自动触发清除任务时间间隔,小时为单位。默认为0,表示不自动清除。
    autopurge.purgeInterval=1
  • 相关阅读:
    BNU 51002 BQG's Complexity Analysis
    BNU OJ 51003 BQG's Confusing Sequence
    BNU OJ 51000 BQG's Random String
    BNU OJ 50999 BQG's Approaching Deadline
    BNU OJ 50998 BQG's Messy Code
    BNU OJ 50997 BQG's Programming Contest
    CodeForces 609D Gadgets for dollars and pounds
    CodeForces 609C Load Balancing
    CodeForces 609B The Best Gift
    CodeForces 609A USB Flash Drives
  • 原文地址:https://www.cnblogs.com/zjdxr-up/p/15041767.html
Copyright © 2020-2023  润新知