• 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
  • 相关阅读:
    zabbix3.4报警队列过多清理
    k8s安装nexus并导入第三方jar包
    kubeadmin安装最新版本的kubenets
    aws相关知识
    mysql忘记root密码做法
    mysql实现读写分离(proxy)与高可用(MGR)
    jvm调优
    zabbix监控php-fpm的性能
    脚本
    opencv demo
  • 原文地址:https://www.cnblogs.com/zjdxr-up/p/15041767.html
Copyright © 2020-2023  润新知