zookeeper简述
zookeeper中的各种角色
- leader:领导者负责进行投票的发起和决议,更新系统状态
- learner:
- folloer:follower用于接收客户请求并向客户端返回结果,在选主过程中参与投票
- Observer:Observer可以接收客户端连接,将写请求转发给leader节点,但Observer不参加投票过程,值同步leader的状态,observer的目的是为了扩展系统,提高读取速度。
- 客户端:请求发起方
zookeeper状态
每个server在工作状态有三种状态:
- looking:当前server不知道leader是谁,正在搜寻
- feading:当前server即为选举出来的leader
- following:leader已经选举出来,当前server与之同步
zookeeper节点数据操作流程
- client向follower发出一个写请求
- follower把请求发送至leader
- leader接收到以后开始发起投票并通知follower进行投票
- follower把投票结果发送给leader
- leader将结果汇总后如果需要写入,则开始把写入操作通知给leader,然后commit;
- follower把请求结果返回给client
paxos算法(ZAB协议)
分布式系统中的节点通信存在两种模型:共享内存(shared memory)和消息传递(messages passing)。基于消息传递通信模型的分布式系统,不可避免的会发生以下村务:进程可能会慢,被杀死或重启,消息可能会延迟、丢失、重复,
record_2
ZAB协议
- ZAB协议是专门为zookeeper实现分布式协调功能而设计。zookeeper主要是根据实现分布式系统数据一致性。
- zookeeper根据ZAB协议建立了主备模型完成zookeeper句群中数据的同步。这里所说的主备系统架构模型是指,在zookeeper集群中,只有一台leader负责处理外部客户端的事务请求(或写操作),然后leader服务器将客户端的写操作数据同步到所有的follower节点中。
- ZAB协议协议核心是在整个zookeeper集群中只有一个节点即leader将客户端的写操作转化为事务(或提议proposal)

浙公网安备 33010602011771号