首页 > 代码库 > Raft系列文章之三:Raft RPC详解
Raft系列文章之三:Raft RPC详解
上一篇文章提到, 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节点保存那些状态数据:
下面是AppendEntries RPC的格式和说明:
下面是RequestVote RPC格式及说明:
上面这两个RPC就是Raft核心部分用到的全部RPC. 下面再罗列一下Raft各种状态的节点处理RPC及状态转换的规则:
本文介绍了Raft 核心部分RPC调用的详细格式及处理流程,下一篇文章我将结合本文介绍的内容进一步解释Raft 日志复制的过程。
Raft系列文章之三:Raft RPC详解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。