从上一篇文章 ZooKeeper与CAP是什么关系?适用于哪些场景?
我们知道,ZooKeeper是一个分布式服务框架,是Apache Hadoop 的一个子项目,主要用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、配置管理、集群管理、分布式锁、发布/订阅等。
从技术本质上来说,ZooKeeper的作用主要体现在两个方面:
-
文件系统
-
监听通知机制
怎么理解这句话的意思呢?带着这个问题,下面咱们开始讨论ZooKeeper的体系架构。
1、ZooKeeper的角色划分
一个ZooKeeper集群是由多个服务器组成(分布式啊,肯定得多台啊!),每个节点都有各自的角色,不同角色的节点在集群中负责不同的任务,作为一个整体对外提供稳定、可靠的服务。
上图体现了ZooKeeper集群中几种角色间的关系,相关描述如下:
领导者 Leader |
处理事务请求,更新系统状态。 负责进行投票的发起和决议。 |
|
学习者 Leaner |
跟随者 Follower |
处理客户端非事务请求并向客户端返回结果,将写事务请求转发给Leader; 参与选举投票,并同步Leader的状态, |