ZooKeeper 集群中的角色简介:

  • Leader: 负责发起投票和决议,更新系统状态
  • Follower:用于接收客户端请求并向客户端返回结果,在选主过程中参与投票
  • Observer: 可以接收客户端连接,将写请求转发给 Leader 节点,但不会参与 Leader 发起的投票,也不会被选举为 Leader,Observer 的目的是为了扩展系统,提高读取速度

一个 ZooKeeper 集群中同一时间只有一个 Leader,其他的都是 Follower 或 Observer

一、Leader 的工作流程

Leader 的主要功能有三个:

  1. 恢复数据
  2. 维持与 Learner(Follower 和 Observer) 的心跳,接收 Learner 的请求并判断 Learner 的请求消息类型

Learner 的消息类型:

  • PING 消息:Leaner 的心跳信息
  • REQUEST 消息:Follower 发送的提议信息,包括读写请求
  • ACK 消息:Follower 对提议的回复,超过半数的 Follower 通过,则 Commit 该提议
  • REVALIDATE 消息:用来延长 SESSION 有效时间
  1. 根据不同的消息类型,进行不同的处理

二、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 消息:表明此 Follower 同步已完成
  5. REVALDATA 消息:根据 Leader 的 REVALDATE 结果,确定关闭等待 revalidate 的 session 还是允许其接收消息
  6. SYNC 消息:返回 SYNC 结果到客户端,这个消息最初由客户端发起,用来强制得到最新的更新

三、Observer 的工作流程

Observer 的工作流程和 Follower 的唯一不同就是 Observer 不会参加 Leader 发起的投票,也不会被选举为 Leader,此处不再赘述。

ZooKeeper 的工作流程相关推荐

  1. logagent同步mysql_LogAgent的工作流程

    项目架构设计 LogAgent的工作流程: 读日志 -tailf第三方库 func main() { fileName := "./my.log" config := tail.C ...

  2. Hadoop生态圈-Zookeeper的工作原理分析

    Hadoop生态圈-Zookeeper的工作原理分析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   无论是是Kafka集群,还是producer和consumer都依赖于Zoo ...

  3. Eureka工作原理(Eureka简介Eureka ServerEureka Client自我保护机制分布式系统中的CAP理论Eureka 工作流程)

    一.Eureka简介 Eureka Server(注册中心,相当于zookeeper) Eureka Client: Provider Consumer 多个Eureka就叫集群.集群之间会定时通过r ...

  4. MapReduce概述及工作流程

    内容 mapreduce原语(独创) mapreduce工作流程(重点) MR作业提交流程(重点) YARN RM-HA搭建(熟练) 运行自带的wordcount(了解) 动手写wordcount(熟 ...

  5. kafka的基本概念和工作流程分析

    为什么需要消息队列 周末无聊刷着手机,某宝网APP突然蹦出来一条消息"为了回馈老客户,女朋友买一送一,活动仅限今天!".买一送一还有这种好事,那我可不能错过!忍不住立马点了去.于是 ...

  6. 原来大数据工作流程可以这样理解------生米煮成熟饭!

    碎碎念 最近一直在思考作为测试工程师,如何以大数据为方向,提升自己的知识储备,适应接下来的市场需求,于是看了很多大数据相关的前辈们的文章,加上自己的理解,竟然觉着大数据工作处理流程,就好像我们在煮饭! ...

  7. Elasticsearch基础1——搜索引擎发展史和工作流程、es/es-head/kibana的基础安装

    文章目录 一.搜索引擎 1.1 搜索引擎的发展背景 1.2 Lucene和Elasticsearch 1.3 Solr和Elasticsearch对比 1.4 数据搜索方式 1.5 搜索引擎 1.5. ...

  8. 【大数据入门笔记系列】第六节 分布式计算框架MapReduce的工作流程

    [大数据入门笔记系列]第六节 分布式计算框架MapReduce的工作流程 前言 MapReduce分布式运算 MapReduceApplication MapTask ReduceTask split ...

  9. Zookeeper笔记(二)Paxos算法与Zookeeper的工作原理

    Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目, 它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管 ...

最新文章

  1. 学java培训开发需要多少钱
  2. html中全选按钮代码怎么写,html中的javascript 全选/取消全选操作示例代码
  3. 【原创】RabbitMQ 之 Access Control(翻译)
  4. 5月第2周编辑部标题训练:寻找读者最关注的新闻点
  5. 使用SpringBoot Actuator监控应用
  6. java中的内存泄漏
  7. java 采样_Java编程实现beta分布的采样或抽样实例代码
  8. 【静态站点(三)】之 Gridsome + Strapi + Vercel + Pm2 部署案例
  9. iQOO Pro 5G评测:配置彪悍定价亲民 成功拉低5G手机准入门槛
  10. padding和卷积的区别_NiN:使用11卷积层替代全连接层
  11. PSP??? 生产者与消费者框架,还是线程模型?
  12. 云栖大会day2总结 上午
  13. MPSK 通信系统的 Monte Carlo 仿真
  14. DBeaver Read-only:No corresponding table column
  15. C++如何写一个函数
  16. Windows起一个Docker镜像——起起起起起~不~来~
  17. 达人评测 i7 13700和i7 12700选哪个
  18. Linux 复制、粘贴快捷键
  19. php三元运算符怎么用,PHP三元运算符使用说明
  20. 笔记整理--Linux守护进程

热门文章

  1. zabbix监控平台添加服务(http,nginx,mysql)
  2. wfm扩展_WFM的完整形式是什么?
  3. RocketMQ一行代码造成消息发送失败
  4. the development of c language(转)
  5. vue数组刷新_Vue中数组更新后,页面没有动态刷新问题
  6. java全文检索工具_全文检索工具elasticsearch:第三章: Java程序中的应用
  7. mfc 子窗体 按钮不触发_VBA与Excel入门——用户窗体1
  8. linux apache certbot,从操作系统软件包安装Certbot
  9. linux脚本算术函数,Linux基础之bash脚本编程初级-变量与算术运算
  10. java怎么让1的数据2可以拥有,【如何让代码变“高级”(二)】-这样操作值得一波666(Java Stream)(这么有趣)...