ZooKeeper的基本概念

ZooKeeper是干啥的?

ZooKeeper是一个开源的分布式协调服务,他为分布式应用提供了高效且可靠的分布式协调服务,提供了诸如统一命名空间服务,配置服务和分布式锁等分布式基础服务。

ZooKeeper基本概念

集群角色

和Paxos算法中的集群角色类型,ZooKeeper中包含Leader、Follower和Observer三个角色;

通过一次选举过程,被选举的机器节点被称为Leader,Leader机器为客户端提供读和写服务;

Follower和Observer是集群中的其他机器节点,唯一的区别就是:Observer不参与Leader的选举过程,也不参与写操作的过半写成功策略。

一个典型的ZooKeeper集群如下:

会话

会话就是一个客户端与服务器之间的一个TCP长连接。客户端和服务器的一切交互都是通过这个长连接进行的;

会话会在客户端与服务器断开链接后,如果经过了设点的sessionTimeout时间内没有重新链接后失效。

节点

节点在ZeeKeeper中包含两层含义:

  1. 集群中的一台机器,我们成为机器节点;
  2. ZooKeeper数据模型中的数据单元,我们成为数据节点(ZNode)。

ZooKeeper的数据模型是内存中的一个ZNode数,由斜杠(/)进行分割的路径,就是一个ZNode,每个ZNode上除了保存自己的数据内容,还保存一系列属性信息;

ZooKeeper中的数据节点分为两种:持久节点和临时节点。

所谓的持久节点是指一旦这个ZNode创建成功,除非主动进行ZNode的移除操作,节点会一直保存在ZooKeeper上;而临时节点的生命周期是跟客户端的会话相关联的,一旦客户端会话失效,这个会话上的所有临时节点都会被自动移除。

版本

ZooKeeper为每一个ZNode节点维护一个叫做Stat的数据结构,在Stat中维护了节点相关的三个版本:

  1. 当前ZNode的版本 version
  2. 当前ZNode子节点的版本 cversion
  3. 当前ZNode的ACL(Access Control Lists)版本 aversion

监听器Watcher

ZooKeeper允许用户在指定节点上注册一些Watcher,并且在一些特定事件触发的时候,ZooKeeper会通过事件通知到感兴趣的客户端上。

ACL(Access Control Lists)

ZooKeeper中定义了5中控制权限:

  1. CREATE:创建子节点的权限
  2. READ:获取节点数据和子节点列表的权限
  3. WRITE:跟新节点数据的权限
  4. DELETE:删除子节点的权限
  5. ADMIN:设置节点ACL的权限。

其中CREATE和DELETE这两种权限都是针对子节点的权限控制。

ZooKeeper的数据模型

上面有提到ZooKeeper的数据模型是一个ZNode节点树,是一个类型与标准文件系统的层次结构,也是使用斜杠(/)进行分割,如下图:

在ZooKeeper中每一个节点都可以使用其路径唯一标识,如节点p_1的标识为:/app1/p_1

每个ZNode节点都可以存储自己的数据,还可以拥有自己的子节点目录。

参考

http://zookeeper.apache.org/doc/trunk/zookeeperOver.html

《从Paxos到ZooKeeper分布式一致性原理与实践》

https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/

http://www.cnblogs.com/sunddenly/p/4138580.html

时间: 2024-08-05 09:52:43

ZooKeeper的基本概念的相关文章

[转帖]从0开始的高并发(一)--- Zookeeper的基础概念

从0开始的高并发(一)--- Zookeeper的基础概念 https://juejin.im/post/5d0bd358e51d45105e0212db 前言 前面几篇以spring作为主题也是有些时日了,高并发分布式这个主题也挺大能说挺多东西的,也是再开了个坑,然后分P来慢慢跟进吧. 我和大部分人一样是一名学习者,不是布道者,更多的是自己的学习总结而不具有权威,进行总结,尽量让人看的简单是我的本意,然后有错则改,无则加勉是最好的,在此也希望大家共同进步. 高并发分布式开发技术体系已然非常的庞

Zookeeper的基本概念和重要特性

目录 1. 什么是Zookeeper 2. Zookeeper集群角色 3. Zookeeper的数据模型 3.1 Znode的类型 3.2 Znode的结构 4. Zookeeper的事件监听机制 5. Zookeeper如何保证分布式数据一致性--ZAB协议 5.1 事务请求的处理流程 5.2 Leader服务器的选举流程 6. Zookeeper如何进行服务器故障的容错 7. 参考资料 1. 什么是Zookeeper Zookeeper是大数据生态圈中的重要组件,如果你做过相关开发的话,应

zookeeper概念与原理

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等. 1 Zookeeper的基本概念 1.1 角色 Zookeeper中的角色主要有以下三类,如下表所示: 系统模型如图所示: 1.2 设计目的 1.最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最重要的性能. 2 .可靠性:具有简单.健壮.良好的性能,如果消息m被到一台服务器接受,那么它将被所有

zookeeper基本概念及原理

zookeeper是一个分布式的,开源的分布式应用程序,该程序主要用于管理其他分布式应用程序.其他分布式应用程序可以基于zookeeper实现数据同步,配置维护和命名服务等等.zookeeper是Hadoop的一个子项目,由于在原有的分布式应用系统中,工程师不能很好的使用锁机制,或者基于消息的协调机制不适合在某些应用中使用,因此需要一种可靠的,可扩展的,分布式的,可配置的协调机制来统一系统的状态,Zookeeper的作用就在于此.本文简单介绍Zookeeper的相关名词概念,然后简单介绍其工作原

二:ZooKeeper术语概念

zookeeper的基本概念介绍Zookeeper的几个核心概念,这些概念贯穿于本书之后对ZooKeeper更深入的讲解,因此有必要预先了解这些概念. ●集群角色一:集群角色          通常在分布式系统中,构成一个集群的每一台机器都有自己的角色,最典型的集群模式就是Master/Slave模式(主备模式).在这种模式中,我们把能够处理所有写操作的机器称为Master机器,把所有通过异步复制方式获取最新数据,并提供读服务的机器称为Salve机器.        而在ZooKeeper中,这

【Zookeeper】2.ZooKeeper的几个重要概念

上次我们了解了Zookeeper的概述,这次带大家了解一下Zookeeper的基本概念. Zookeeper的基本概念分为以下几个:集群角色.会话.数据节点.版本.watcher.ACL权限控制. 1.集群角色在Zookeeper搭建的集群环境中,集群的角色分为Leader.Follower.Observer. 其中Leader服务器是整个Zookeeper集群工作机制中的核心,Follower服务器是Zookeeper集群状态的跟随者,Observer服务器充当一个观察者的角色. 我们这里了解

这可能是把ZooKeeper概念讲的最清楚的一篇文章

我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 Solr 集群的时候,我使用到了 ZooKeeper 作为 Solr 集群的管理工具. 前几天,总结项目经验的时候,我突然问自己 ZooKeeper 到底是个什么东西? 想了半天,脑海中只是简单的能浮现出几句话: Zookeeper 可以被用作注册中心. Zookeeper 是 Hadoop 生态系统的一员. 构建 Zookeeper 集群的时候,使用的服务器最好是奇数台. 可见,我对于 Zookeeper 的理解仅

zookeeper原理(转)

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等.Zookeeper是hadoop的一个子项目,其发展历程无需赘述.在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的.可扩展的.分布式的.可配置的协调机制来统一系统的状态.Zookeeper的目的就在于此.本文简单分析zookeeper的工作原理,对于如何使用zookeeper不是本

《从PAXOS到ZOOKEEPER分布式一致性原理与实践》pdf

下载地址:网盘下载 内容简介  · · · · · · <Paxos到Zookeeper:分布式一致性原理与实践>从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议.同时,本书深入介绍了分布式一致性问题的工业解决方案--ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法.内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper.全书共8章,分为五部分:第一