gaofeng0210 发表于 2019-1-8 11:29:35

Zookeeper基本框架

Zookeeper基本框架
  Zookeeper集群主要角色有Leader,Learner(Follower,Observer(当服务器增加到一定程度,由于投票的压力增大从而使得吞吐量降低,所以增加了Observer。)以及client:
  Leader:领导者,负责投票的发起和决议,以及更新系统状态
  Follower:接受客户端的请求并返回结果给客户端,并参与投票
  Observer:接受客户端的请求,将写的请求转发给leader,不参与投票。Observer目的是扩展系统,提高读的速度。
  Client:客户端,想Zookeeper发起请求。
  Zookeeper的基本框架图如下
http://img.blog.csdn.net/20150310184459281?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXVucWlu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
  Leader主要功能:
  恢复数据;
  维持与Learner的心跳,接收Learner请求并判断Learner的请求消息类型;Learner的消息类型主要有PING消息、REQUEST消息、ACK消息、REVALIDATE消息,根据不同的消息类型,进行不同的处理。PING消息是指Learner的心跳信息;REQUEST消息是Follower发送的提议信息,包括写请求及同步请求;ACK消息是Follower的对提议的回复,超过半数的Follower通过,则commit该提议;REVALIDATE消息是用来延长SESSION有效时间。
http://img.blog.csdn.net/20150310184541151?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXVucWlu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
  Follower基本功能:
  向Leader发送请求(PING消息、REQUEST消息、ACK消息、REVALIDATE消息);
  接收Leader消息并进行处理;
  接收Client的请求,如果为写请求,发送给Leader进行投票;
http://img.blog.csdn.net/20150310184614052?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXVucWlu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
  Observer主要功能同Follower的唯一不同的地方就是observer不会参加leader发起的投票。
  欢迎访问肖海鹏老师的课程中心:http://edu.运维网.com/lecturer/user_id-10053053.html
  欢迎加入肖海鹏老师技术交流群:2641394058(QQ)

页: [1]
查看完整版本: Zookeeper基本框架