博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解析zookeeper的工作流程
阅读量:4067 次
发布时间:2019-05-25

本文共 828 字,大约阅读时间需要 2 分钟。

今天我们通过下面几张图来了解下Zookeeper的内部工作流程是咋样的,在讲工作流程之前我们先了解下Zookeeper的角色。

Zookeeper的工作流程,你了解吗?

 

一、Zookeeper的角色

Zookeeper主要有下面两种角色,领导者和学习者,其中学习者又包含跟随者和观察者。我们直接看图理解,我们直接看图理解,这是一个由多个server组成的集群,一个leader,多个follower,每个server保存一份数据副本,全局数据一致,分布式读写。

Zookeeper的工作流程,你了解吗?

 

  1. 领导者(Leader),领导者负责进行投票的发起和决议,更新系统状态。
  2. 学习者(Learner),跟随者(Follower)和观察者(Observer)。
  3. 跟随者(Follower),Follower可以接收客户端的请求并返回结果,并参与主过程的投票。
  4. 观察者(Observer),Observer可以接收客户端的请求,写请求会转发给Leader节点,但不参与投票,主要是扩展系统的读取速度。

二、Zookeeper的工作流程

Zookeeper的工作流程,你了解吗?

 

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

通过上面的工作流程,我们可以看出Follower主要有以下四个功能,

  1. 向Leader发送请求(PING消息、REQUEST消息、ACK消息、REVALIDATE消息);
  2. 接收Leader消息并进行处理;
  3. 接收Client的请求,如果为写请求,发送给Leader进行投票;
  4. 返回Client结果。

综合看来,Zookeeper的工作流程还是挺清晰的,follower主要是转发请求、参与投票、返回投票结果;leader则主要是发起投票决议,更新系统状态。

转载地址:http://zhoji.baihongyu.com/

你可能感兴趣的文章
PostgreSQL代码分析,查询优化部分,pull_ands()和pull_ors()
查看>>
ORACLE权限管理调研笔记
查看>>
移进规约冲突一例
查看>>
IA32时钟周期的一些内容
查看>>
SM2椭圆曲线公钥密码算法
查看>>
获得github工程中的一个文件夹的方法
查看>>
《PostgreSQL技术内幕:查询优化深度探索》养成记
查看>>
PostgreSQL查询优化器详解之逻辑优化篇
查看>>
STM32中assert_param的使用
查看>>
C语言中的 (void*)0 与 (void)0
查看>>
vu 是什么
查看>>
io口的作用
查看>>
IO口的作用
查看>>
UIView的使用setNeedsDisplay
查看>>
归档与解归档
查看>>
Window
查看>>
为什么button在设置标题时要用一个方法,而不像lable一样直接用一个属性
查看>>
字符串的截取
查看>>
2. Add Two Numbers
查看>>
17. Letter Combinations of a Phone Number (DFS, String)
查看>>