介绍
ZooKeeper是阿帕奇官网的一个分布式服务框架,用来解决分布式应用中经常出现的一些数据管理问题,比如统一命名服务、状态同步服务、集群管理和分布式应用配置管理等。总的来说,ZK=文件系统 + 监听通知机制
1、文件系统
ZooKeeper底层是一套树形存储结构,类似于Unix文件系统路径,也是从根节点开始,这些节点都称之为znode
,可以用来保存数据(默认存储大小为1MB)。 而这些znode节点也分为四种类型
节点类型 | 节点描述 |
---|---|
PERSISTENT | 持久化目录节点,当客户端与 zookeeper 断开连接后,该节点依旧存在 |
PERSISTENT_SEQUENTIAL | 持久化顺序编号目录节点,当客户端与 zookeeper 断开连接后,该节点依旧存在,只是 Zookeeper 给该节点名称进行顺序编号 |
EPHEMERAL | 临时目录节点,当客户端与 zookeeper 断开连接后,该节点被删除 |
EPHEMERAL_SEQUENTIAL | 临时顺序编号目录节点,当客户端与 zookeeper 断开连接后,该节点被删除,只是 Zookeeper 给该节点名称进行顺 序编号 |
2、监听通知机制
ZooKeeper采用了观察者设计模式,客户端会向其关心的目录节点注册,一旦目录节点发生改变(比如数据的更新或删除、子目录节点的增加或删除),ZK服务就会通知客户端。