码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-12-13 18:07:25      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:raft   一致性算法   分布式   一致性服务   

上一篇文章提到, 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详解

标签:raft   一致性算法   分布式   一致性服务   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!