Zookeeper介绍
一个典型的分布式数据一致性解决方案 提供了:负载均衡、命名服务、分布式协调 通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
它并没有直接采用 Paxos算法,而是采用了一种被称为 ZAB(ZooKeeper Atomic Broadcast) zookeeper 原子官博的一致性协议。
它保证了分布式一致性的特性:
- 顺序一致性
- 原子性
- 单一视图
- 可靠性
- 实时性
设计目标
- 简单的数据模型
存储叫znode的东西, 在内存中。保持高性能。 - 可构建集群
集群相互保持通讯,只要有超过一半的机器运转正常它就能够对外进行服务。这取决于 Zookeeper的master 选举机制(后面介绍)。 - 顺序访问
通过全局唯一的递增序号来规定顺序。 - 高性能
内存存储
Zookeeper中的一些名词
- 角色
Leader:提供读写服务
Follower:提供读服务,参与选举 参与 过半写成功策略
Observer: 提供读服务,不参与选举 不参与 过半写成功 策略 - 会话
一个TCP连接。在连接的SessionTImeout 时间内能够重新联系则之前的回话仍然有效。 - 数据节点
内存中存储的数据方式。
持久节点:没做移除操作无法进行删除的节点
临时节点:生命周期跟回话一样。可以看做Session保存节点。
SEQUENTIAL:在节点上特殊的属性。在节点后面会加上一个整型数字 。由父节点维护的自增数字。 - 版本
- Watcher
事件监听,客户可以监听,并且 zookeeper用于通知客户。 - ACL
权限控制机制
Create,Read, Write, Delete, Admin