ZooKeeper 概述
Zookeeper 是一个分布式协调服务的开源框架。 主要用来解决分布式集群中应用
系统的一致性问题,例如怎样避免同时操作同一数据造成脏读的问题。
ZooKeeper 本质上是一个分布式的小文件存储系统。 提供基于类似于文件系统
的目录树方 式的数据存储,并且可以对树中的节点进行有效管理。从而用来维
护和监控你存储的数据的状态变化。
通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。 诸如: 统
一命名服务(dubbo).分布式配置管理(solr的配置集中管理)、分布式消息队列
(sub/pub)、分布式锁、分布式协调等功能。
zookeeper的架构图
Leader:
- Zookeeper 集群工作的核心;事务请求(写操作) 的唯一调度和处理者,保证集群事务处理的顺序性;集群内部各个服务器的调度者。
- 对于 create, setData, delete 等有写操作的请求,则需要统一转发给leader 处理, leader 需要决定编号.执行操作,这个过程称为一个事务。
- Follower:
- 处理客户端非事务(读操作) 请求;转发事务请求给 Leader;参与集群 Leader 选举投票 2n-1台可以做集群投票。
- 此外,针对访问量比较大的 zookeeper 集群, 还可新增观察者角色。