简介
Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。
工作机制
从设计模式上来说是基于发布订阅模式实现的,他负责存储和管理大家都比较关心的数据,然后接受观察者注册,一旦数据数据发生变化,zk就会通知已经在zk上注册的观察者。
一句话总结: 文件系统+通知机制
ps:一般是集群模式运行,因为zk系统本身也需要达到高可用,也就是我们常说的HA架构,学习阶段可以考虑安装单机版。
简述工作机制图:
特点
- zk集群模式也是一个Leader和多个Follower
- 集群中半数以上的节点存活,zk就能正常工作
- 全局数据一致性,每个Sever都保存一份相同的副本。
- 数据更新原子性,更新要么全成功要么全失败,理解为数据库中的事务
- 实时性 在一定时间范围内,Client总能拿到最新数据
数据结构
树状结构,和Linux或者windows下的目录结构是类似的,总体可以看作一棵树,每一个节点是ZNode