编辑: 于世美 | 2019-07-03 |
? Follower连接leader,将最大的zxid发送给leader;
? Leader根据follower的zxid确定同步点;
? 完成同步后通知follower 已经成为uptodate状态;
? Follower收到uptodate消息后,又可以重新接受 client的请求进行服务了. 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版 2.3 工作流程 z Leader工作流程 z Follower工作流程 z Observer工作流程 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版 Leader的三个主要功能 ? 恢复数据;
? 维持与Learner的心跳,接收Learner请求并判断 Learner的请求消息类型;
? Learner的消息类型主要有PING消息、 REQUEST消息、ACK消息、REVALIDATE消息 ,根据不同的消息类型,进行不同的处理. 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版 PING消息 ? PING消息是指Learner的心跳信息;
REQUEST 消息是Follower发送的提议信息,包括写请求及 同步请求;
ACK消息是Follower的对提议的回复 ,超过半数的Follower通过,则commit该提议;
REVALIDATE消息是用来延长SESSION有效时间 . 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版 Leader的工作流程简图 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版 Follower的四个主要功能: ? 向Leader发送请求(PING消息、REQUEST消息 、ACK消息、REVALIDATE消息);
? 接收Leader消息并进行处理;
? 接收Client的请求,如果为写请求,发送给 Leader进行投票;
? 返回Client结果. 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版 几种Leader消息 Follower的消息循环处理如下几种来自Leader的消息: ? PING消息: 心跳消息;
? PROPOSAL消息:Leader发起的提案,要求Follower投票;
? COMMIT消息:服务器端最新一次提案的信息;
? UPTODATE消息:表明同步完成;
? REVALIDATE消息:根据Leader的REVALIDATE结果, 关闭待revalidate的session还是允许其接受消息;
? SYNC消息:返回SYNC结果到客户端,这个消息最初由 客户端发起,用来强制得到最新的更新. 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版 Follower的工作流程简图 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版 observer的流程 ? 对于observer的流程不再叙述,observer流程和 Follower的唯一不同的地方就是observer不会参 加leader发起的投票. 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版
3、Zookeeper数据模型 ? Zookeeper维护一个类似文件 系统的数据结构,如图所示. ? 每个子目录项如 NameService 都被称作为 znode,和文件系 统一样,我们能够自由的增加 、删除znode,在一个znode下 增加、删除子znode,唯一的 不同在于znode是可以存储数 据的. 《大数据技术基础》 厦门大学计算机系 林子雨 [email protected] 2013年9月修订版 Znode的四种类型 ? PERSISTENT-持久化目录节点:客户端与zookeeper断 开连接后,该节点依旧存在. ? PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点 :客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号;
? EPHEMERAL-临时目录节点:客户端与zookeeper断开连 接后,该节点被删除;