一、Zookeeper原理解析
1、集群角色描述
角色 | 描述 | |
领导者(Leader) | Leader负责进行投票的发起和决议,更新系统状态; 处理客户端的读写请求(为了保证最终一致性,所有写请求都由Leader处理); |
|
学习者(Learner) | 跟随者(Follower) | Follwer用于接收客户端的请求并向客户端返回结果; Follwer在选主的过程中参与投票。 |
观察者(Observer) | Observer接收客户端的请求,并将写请求转发给Leader; Observer不参加投票过程,只同步Leader的状态; Observer的目的是为了扩展系统,提高系统读取速度。 |
|
客户端(Client) | 请求发送方 |
2、Paxos算法概述
分布式系统中的节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing)。
Paxos 算法是莱斯利•兰伯特(英语:Leslie Lamport)于 1990 年提出的一种基于消息传递且
具有高度容错特性的一致性算法。
ZooKeeper 的选举算法有两种:一种是基于 Basic Paxos(Google Chubby 采用)实现的,另外
一种是基于 Fast Paxos(ZooKeeper 采用)算法实现的。系统默认的选举算法为 Fast Paxos。
Paxos算法的原理可查看下面的链接&