zookeeper简介zookeeper是为分布式应用提供分布式协作服务的开源软件 。它提供了一组简单的原子操作,分布式应用可以基于这些原子操作来实现更高层次的同步服务,配置维护,组管理和命名 。zookeeper的设计使基于它的编程非常容易,若我们熟悉目录树结构的文件系统,也会很容易使用zookeeper的数据模型样式 。它运行在JAVA上,有java和c的客户端 。
协作服务因难于获取正确而臭名远扬,他们特别易于出错如竞争条件和死锁 。zookeeper的动机是减轻分布式应用中从零开始实现协作服务的压力 。
zookeeper的特点1.简单:zookeeper运行分布式进行通过一个共享的层次命名空间来进行协作,该命名空间的组织类似于标准的文件系统 。命名空间包括数据注册器(称之为znode),在zookeeper看来,这类似于文件和目录 。与典型的文件系统设计用来存储不同的是,zookeeper数据是存放在内存中,这意味着zookeeper可以实现很高的吞吐量和低延迟 。
ZooKeeper 实现在高性能,高可用性,严格有序的访问方面有很大的优势 。在性能方面的优势使它可以应用在大型的的分布式系统 。在可靠性方面,避免单点故障 。严格的顺序访问使它在客户端可以实现复杂的同步原语 。
2. 可复制:类似于分布式进程的协作,zookeeper本身很容易在一组主机(称之为集合)中实现复制 。zookeeper服务示意图:
文章插图
组成ZooKeeper服务的一组服务器都必须知道对方的 。它们保存了内存映像的状态,以及在持久存储中的事务日志和快照 。只要大部分的服务器可用,ZooKeeper服务将可用 。
客户端连接到一台ZooKeeper服务器 。客户端维护一个TCP连接,通过它发送请求,得到响应,得到监视事件,并发送心跳 。如果TCP连接到服务器中断,客户端可以连接到不同的服务器 。
3. 有序:ZooKeeper给每次更新使用数字打标记,它反映了所有zookeeper事务的顺序 。随后的操作可以使用这些顺序来实现更高级别的抽象,如同步原语 。
4.快速:它特别快,在“读为主”的工作中,ZooKeeper 应用程序运行在数千台机器,它在读远比写更多的时候(在10:1的比例)表现的最好 。
数据模型与层次命名空间
ZooKeeper提供的名称空间更像是一个标准的文件系统 。一个名字是一个由一个(或)分隔的路径元素的序列 。zookeeper名称空间的每个节点由路径来标示 。
文章插图
节点和临时节点
不像标准的文件系统,在ZooKeeper 命名空间中每个节点都有与它相关的数据以及子节点 。它就像这样一个文件系统,它允许一个文件也可以是一个目录 。(zookeeper是用来储存协作数据:状态信息,配置,位置信息等,因此,存储在每个节点的数据通常是很小的,在字节到千字节范围 。)我们使用术语znode来表明我们谈论的是zookeeper数据节点 。
znodes保存一个数据结构,该数据结构包括数据变化的版本号和时间戳,ACL的变化,这些信息允许缓存验证和协作更新 。一个znode的数据的每次变化,版本号的增加 。例如,每当客户检索数据时,它也接收到数据的版本 。
在一个命名空间中的每个节点存储的数据的读写都是原子性的 。读获取一个Znode所有的数据字节;写替换所有的数据 。每个节点都有一个访问控制列表(ACL),限制谁可以做什么 。
zookeeper也有临时节点的概念 。这些znodes只要创建znode的会话是活跃的,它就存在的 。当会话结束时,这些znode被删除 。
条件更新与监控
ZooKeeper支持监控的概念 。客户端可以在一个znode上设置一个监控 。当znode发生变化时会触发或者移除监控 。当监控触发时,客户端接收到一个报文,表明znode发生了变化 。若客户端和一个zookeeper服务器的连接损坏时,客户端接收到一个本地通知 。
保障
ZooKeeper非常快速和简单. 虽然它的目标是为建设更为复杂的服务,例如同步,它提供了一系列的保证 。这些是:
- 顺序一致性----客户端的更新将被应用于它们被发送的命令中 。
- 原子性-- - 更新要么成功要么失败,不存在部分成功或者部分失败.
- 单系统映像 ---- 不管连接到哪台服务器,客户端看到相同的服务视图.
- 可靠性---- 一旦一个更新发生,直到下次一个客户端重新了更新,否则从更新的时间后都会保持 。
- 及时性--- - 在一定时间范围内保证系统的客户视图是最新的.
推荐阅读
- 南大碎尸案最新分析最新_天涯杂谈_论坛_天涯社区 天涯论坛:关于南大碎尸案的一点想法
- RabbitMQ使用分析,高可用集群搭建,案例分享
- 摩羯座|摩羯座 2022年 职场运势分析
- 正山小种多少钱斤看着价格表分析
- 红茶的功效与作用红茶的营养分析
- 湿膜加湿器优缺点分析
- 正山小种茶多少钱来看看价格分析
- 招聘|第三方网络招聘行业发展分析:反馈效率或成为招聘平台核心竞争力
- 郭靖和黄蓉怎么死的神雕侠侣 分析射雕英雄传之郭靖形象
- Google分析工具Analytics的功能一览