ZooKeeper的工作流程
来源:互联网 发布:关于知乎的诗词 编辑:程序博客网 时间:2024/06/05 19:19
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式式应用程序可以基于它实现同步服务,配置维护和命名服务等。ZooKeeper是Hadoop的一个子项目。在分布式应用中,由于工程师不能很好的使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。ZooKeeper目的于此。
Leader工作流程
Leader主要的三个功能:
1. 恢复数据;
2. 维持与Learner的心跳,接收Learner请求并判断Learner的请求消息类型;
3. Learner的消息类型主要有PING消息、REQUEST消息、ACK消息、REVALIDATE消息,根据不同的消息类型,进行不同的处理。
(1)PING消息是指Learner的心跳信息;
(2)REQUEST消息是Follower发送的提议信息,包括写请求及同步请求;
(3)ACK消息是Follower的对提议的回复,超过半数的Follower通过,则commit该提议;
(4)REVALIDATE消息是用来延长SESSION有效时间。
Leader的工作流程简图如下,在实际实现中,流程更加复杂,启动了三个线程来实现功能。
Follower工作流程
Follower主要四个功能:
1. 向Leader发送请求(PING消息、REQUEST消息、ACK消息、REVALIDATE消息);
2. 接收Leader消息并进行处理;
3. 接收Client的请求,如果为写请求,发送给Leader进行投票;
4. 返回Client结果。
Follower的消息循环处理如下几种来自Leader的消息:
1. PING消息: 心跳消息;
2. PROPOSAL消息:Leader发起的提案,要求Follower投票;
3. COMMIT消息:服务器端最新一次提案的信息;
4. UPTODATE消息:表明同步完成;
5. REVALIDATE消息:根据Leader的REVALIDATE结果,关闭待revalidate的session还是允许其接受消息;
6. SYNC消息:返回SYNC结果到客户端,这个消息最初由客户端发起,用来强制得到最新的更新。
Follower的工作流程简图如下,在实际实现中,Follower是通过5个线程来实现功能的。
Observer工作流程
对于Observer的流程不再叙述,Observer流程和Follower的唯一不同的地方就是Observer不会参加Leader发起的投票。
- ZooKeeper的工作流程
- Zookeeper工作流程
- ZooKeeper的同步流程
- Zookeeper的启动流程
- Zookeeper 的工作原理
- ZooKeeper的工作原理
- ZooKeeper的工作原理
- zookeeper的工作原理
- zookeeper的工作原理
- zookeeper的工作原理
- struts的工作流程
- Struts的工作流程
- Struts的工作流程
- Struts 的工作流程
- Struts的工作流程
- Struts的工作流程
- struts的工作流程
- struts的工作流程
- POJ 3768 Repeater
- Git远程操作详解
- iOS如何上传代码到Github
- 三种ViewController跳转的异同(两种转场动画的实现待总结)
- 【Linux学习】epoll详解
- ZooKeeper的工作流程
- UVa 679 Dropping Balls
- 对象数组
- 在 Linux 中永久修改 USB 设备权限
- matlab分割字符串(split)
- 表单提交小结
- 如何保护我的站点免受SQL入攻击——常见网站攻击手段原理与防御
- 对事务的支持
- python-MySQL学习笔记-第三章-利用Connector/Python来插入数据