ZooKeeper学习心得
初始ZooKeeper
首先我们要知道什么是ZooKeeper?
ZooKeeper是一个开源分布式协同系统,设计目标是将复杂且容易出错的分布式协同服务封装起来。抽象为一个集合,通过暴露接口的方式提供给大家使用。
ZooKeeper的常见应用场景
- 配置管理;
- DNS服务 ;
- 组成员管理 ;
- 分布式锁 ;
- 特点:适用于存储和协同相关的关键数据,不适合用于大数据量存储。
- 交互方式: Zookeeper服务使用ZooKeeper客户端与ZooKeeper集群进行交互。
Zookeeper的结构
- Zookeeper的层次模型是由data tree,data tree的组成为一个个的znode;
- znode的数据只支持全量读取和写入,不支持部分读取和写入;
- znode用路径来定位;例如/A/X;
- data tree的所有API都是wait free的正在执行的API调用不会影响其他API的调用;
- data tree的API都是对文件系统的wait-free操作,不直接提供锁这样的分布式协同机制,但是data-tree的API非常强大 可以实现多种分布式协同机制;
- 每个znode都能存储数据,都有自己的版本,这