Zookeeper
1. zookeeper是什么?
zookeeper是一个开源的分布式协调服务,zookeeper可以协助分布式应用程序实现负载均衡、命名服务(按名称标识集群中的节点)、集群管理(集群节点的增加和删除)、配置管理、状态同步、选举算法等。
保证了如下分布式一致性特性:
- 顺序一致性
- 原子性
- 单一视图
- 可靠性
- 最终一致性
zookeeper提供了文件系统和消息通知。
2. zookeeper节点类型
PERSISENT-持久节点
EPHEMERAL-临时节点
PERSISENT_SEQUENTIAL-持久顺序节点
EPHEMERAL_SEQUETIAL-临时顺序节点
3. Zookeeper集群角色
- Leader
- Follower
- Observer
4. Zookeeper提供了文件系统和通知机制,zookeeper文件系统不同于一般文件系统,是一个树形的多层级节点命名空间(节点称为Znode)。每个节点都可以保存数据,但为了保证高吞吐量和低延迟,Zookeeper在内存中保存这种树形结构,节点存放数据量不超过1M。
采用Zookeeper Watch机制实现数据变更通知。包括客户端注册watcher,服务端处理watcher,客户端回调watcher。
5. Zookeeper采用ZAB作为支持崩溃恢复的原子广播协议,有崩溃恢复和消息广播两种模式。