zookeeper简述

zookeeper中的各种角色

  1. leader:领导者负责进行投票的发起和决议,更新系统状态
  2. learner:
    1. folloer:follower用于接收客户请求并向客户端返回结果,在选主过程中参与投票
    2. Observer:Observer可以接收客户端连接,将写请求转发给leader节点,但Observer不参加投票过程,值同步leader的状态,observer的目的是为了扩展系统,提高读取速度。
  3. 客户端:请求发起方

zookeeper状态

每个server在工作状态有三种状态:

  1. looking:当前server不知道leader是谁,正在搜寻
  2. feading:当前server即为选举出来的leader
  3. following:leader已经选举出来,当前server与之同步

zookeeper节点数据操作流程

  1. client向follower发出一个写请求
  2. follower把请求发送至leader
  3. leader接收到以后开始发起投票并通知follower进行投票
  4. follower把投票结果发送给leader
  5. leader将结果汇总后如果需要写入,则开始把写入操作通知给leader,然后commit;
  6. follower把请求结果返回给client

paxos算法(ZAB协议)

分布式系统中的节点通信存在两种模型:共享内存(shared memory)和消息传递(messages passing)。基于消息传递通信模型的分布式系统,不可避免的会发生以下村务:进程可能会慢,被杀死或重启,消息可能会延迟、丢失、重复,

record_2

ZAB协议

  1. ZAB协议是专门为zookeeper实现分布式协调功能而设计。zookeeper主要是根据实现分布式系统数据一致性。
  2. zookeeper根据ZAB协议建立了主备模型完成zookeeper句群中数据的同步。这里所说的主备系统架构模型是指,在zookeeper集群中,只有一台leader负责处理外部客户端的事务请求(或写操作),然后leader服务器将客户端的写操作数据同步到所有的follower节点中。
  3. ZAB协议协议核心是在整个zookeeper集群中只有一个节点即leader将客户端的写操作转化为事务(或提议proposal)
posted @ 2019-11-18 09:30  hwloser  阅读(239)  评论(0)    收藏  举报