什么是Zookeeper?
- 一个开源的分布式的,为分布式应用提供协调服务的Apache项目
- 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务
- 设计非常易于编程,它使用的是类似于文件系统那样的树形数据结构
- 目的就是将分布式服务不在需要由于协助冲突而另外实现协助服务
1、Zookeeper的特点
- 分布式架构,由对台机器组成
- 机器的数目必须是奇数(1,3,5,7....)
- 2n+1的概念,n代表集群中允许损坏的机器数目
- ZK中的节点称作:Znode节点
- ZK在启动的时候会进行选举的操作,选出一个领导者,在后续使用中如果机器损坏,将继续选举新的领导者 ,领导者是未来保持数据的一致性
- 选举Leader。
- 同步数据。
- 选举Leader过程中算法有很多,但要达到的选举标准是一致的。
- Leader要具有最高的执行ID,类似root权限。
- 集群中大多数的机器得到响应并follow选出的Leader。