一、概述
- Zookeeper是Apache提供的一套于用进行分布式管理和协调的框架
二、分布式的问题
- 分布式容易存在死锁以及活锁问题
- 分布式中,需要引入管理节点
- 如果只有一个管理节点,容易存在单点故障,所以需要引入管理集群
- 管理集群中需要选举出一个主节点
- 管理节点之间需要进行信息的共享
三、安装
- 单机模式:只用一个节点来安装,往往只能提供这个框架的部分功能
- 伪分布式:只用一个节点来安装,但是模拟集群环境,能够提供框架的所有功能
- 完全分布式:在集群中安装,提供这个框架的所有功能
四、特性
- 过半性
- 数据一致性 — 原子广播
- 可靠性 — 崩溃恢复
- 顺序性 — 队列、epochid
- 实时性 — 可以对Zookeeper进行实时监控
- 原子性 — 原子广播
一、特点
- Zookeeper本身是一个树状结构
- 根节点是/
- 将Zookeeper中每一个节点称之为znode节点
- 每一个节点都要求携带数据
- Zookeeper不支持相对路径
- 将数据存储在磁盘以及内存中
- 数据在磁盘上的存储位置由dataDir来决定
- 理论上Zookeeper可以作为缓存机制使用,但是如果使用Zookeeper作为缓存机制,则会导致内存被大量占用,则致使Zookeeper的协调能力减弱
- Zookeeper会对每一次的写操作(create/set/delete/rmr)分配一个全局递增的编号,这个编号称之为事务id -