• Zookeeper简介


    1.1 什么是zookeeper

    • Zookeeper是一个分布式的、开源的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Apache Hadoop的一个子项目,主要是用来解决分布式应用中经常遇到的一些数据管理的问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
    • 它是一个为分布式应用听过一致性协调服务的中间件

    1.2 zookeeper提供了什么

    • zookeeper=文件系统+监听通知机制。
    • 文件系统:zookeeper维护一个类似文件系统的树桩数据结构,每个子目录项都被称为znode(目录节点),和文件系统一样,我们能够自由的增加、删除znode,且znode是可以存储数据的。
      • zookeeper为了保证高吞吐和低延迟,在内存中维护了这个树状的目录结构,这种特性使得zookeeper不能用于存放大量的数据,每个节点的存储数据上限为1M
      • 有四种类型的znode:
        • Persistent -持久化目录节点:客户端与zookeeper断开连接后,该节点依旧存在
        • Persistent_SEQUENTIAL-持久化顺序编号目录节点:客户端与zookeeper断开连接后,该节点依旧存在,只是zookeeper给该节点名称进行顺序编号
        • ephemeral-临时目录节点:客户端与zookeeper断开后,该节点被删除
        • Ephemeral_sequential-临时顺序编号目录节点:客户端与zookeeper断开后,该节点被删除,只是zookeeper给该节点名称进行顺序编号
    • 监听通知机制:客户端注册监听(watcher事件)它关心的目录节点,当目录节点发生变化(数据更改、被删除、子目录节点增加删除)时,zookeeper会通知客户端。

    1.3 zookeeper用途

    1. 分布式应用配置管理
    2. 统一命名服务
    3. 状态同步服务
    4. 集群管理,保证集群中数据的强一致性
    5. 分布式锁,分布式环境中不同进程之间争夺资源,类似于多线程中的锁
    6. 分布式队列:数据发布与订阅
    7. zookeeper集群leader选举:即master节点选举,主节点down掉后,从节点就会接手工作,并且保证这个节点是唯一的。从而保证集群是高可用的

    1.4 zookeeper的特性

    • 一致性:数据一致性,数据按照顺序分批入库
    • 原子性:事物要么成功要么失败
    • 单一视图:客户端连接集群中的任意zk节点,数据都是一致的
    • 可靠性:每次对zk的操作状态都会保存在服务端
    • 实时性:客户端可以读取到zk服务端的最新数据
  • 相关阅读:
    CompositeConfiguration的用法
    Intellij IDEA连接Git@OSC
    Spring4.1.6 标签注解大全以及解释
    React制作吸顶功能总结
    总结常见的ES6新语法特性。
    12个常规前端面试题及小结
    JavaScript 扩展运算符
    Promise,Generator(生成器),async(异步)函数
    Vue中过度动画效果应用
    vue的双向绑定原理及实现
  • 原文地址:https://www.cnblogs.com/amyzhu/p/12454143.html
Copyright © 2020-2023  润新知