概述
Zookeeper是一个开源的分布式,为分布式提供协调服务的Apache项目
Zookeeper从设计模式角度来理解,是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经存在Zookeeper上注册的那些观察者做出相应的反应
Zookeeper通常等于是文件系统加通知机制
特点
- Zookeeper是一个领导者(Leader),多个跟随者(Follower)组成的集群
- 集群中只要有半数以上节点存货,Zookeeper集群就能正常服务
- 全局数据一致,每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的
- 更新请求顺序进行,来自同一个Client的更新请求按其发送顺序依次执行
- 数据更新的原子性,一个数据更新要么成功,要么失败
- 实时性,在一定时间范围内,Client能读到最新数据
Zookeeper数据结构
Zookeeper数据模型的结构与Unix文件系统很类似,整体可以看做是一颗树,每个节点称为一个ZNode,没一个ZNode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识
应用场景
提供的服务包括,统一命名服务,统一配置管理,统一集群管理,服务器节点动态上下线,软负载均衡等
下载地址
https://zookeeper.apache.org/
步骤如图