ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase、Storm的重要组件。本文将从ZooKeeper的主要特性、Zab协议、应用场景等方面来介绍Zookeeper的原理与应用。
1
ZooKeeper主要特性
数据模型
■层次化的目录结构,命名符合常规文件系统规范
■每个节点Znode都有唯一的路径标识
■Znode有两种类型,短暂的(ephemeral)和持久的(persistent)
•节点Znode可以包含数据和子节点
•短暂Znode的客户端会话结束时,zookeeper会将该短暂znode删 除,短暂Znode不可以有子节点
•持久Znode不依赖于客户端会话,需客户端明确删除
■Znode有四种形式的目录节点,PERSISTENT、PERSISTENT_SEQUENT IAL、EPHEMERAL、EPHEMERAL_SEQUENTIAL
■Znode节点数据支持多版本和ACL访问控制
读写机制
■Zookeeper是一个由多个server组成的集群
■一个leader,多个follower
■每个server保存一份数据副本
■全局数据一致
■分布