首页 > 其他 > 详细

Raft系列文章之三:Raft RPC详解

时间:2014-12-13 18:06:00      阅读:583      评论:0      收藏:0      [点我收藏+]

上一篇文章提到, Raft核心部分只需要用到2个RPC: RequestVote和AppendEntries, 本文将介绍这两个RPC的格式和作用。

RequestVote RPC是由candidate发送给其他节点,请求其他节点为自己投票,如果一个candidate获得了多数节点的投票,则该candidate转变为Leader。AppendEntries RPC是由Leader节点发送给其他节点,有两个作用,当其entries域为空时,该RPC作为Leader的心跳,当entries域不为空时,请求其他节点将entries域中的log添加到自己的log中。

每个Raft节点将会根据自己节点的状态数据来对这两种RPC请求进行处理,我们先看一下,每个Raft节点保存那些状态数据:

bubuko.com,布布扣

下面是AppendEntries RPC的格式和说明:

bubuko.com,布布扣

下面是RequestVote RPC格式及说明:

bubuko.com,布布扣

上面这两个RPC就是Raft核心部分用到的全部RPC. 下面再罗列一下Raft各种状态的节点处理RPC及状态转换的规则:

bubuko.com,布布扣


本文介绍了Raft 核心部分RPC调用的详细格式及处理流程,下一篇文章我将结合本文介绍的内容进一步解释Raft 日志复制的过程。

Raft系列文章之三:Raft RPC详解

原文:http://blog.csdn.net/chicm/article/details/41909261

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!