【Raft&Ratis】leader election代码详解,选主

6 篇文章 0 订阅 ¥19.90 ¥99.00
本文详细介绍了Raft和Ratis中的领导者选举过程,重点解析了RequestVote RPC的选举限制,阐述了日志比较算法以及在Ratis中如何实现这一过程。文中还详细讨论了RaftServerProtocol协议类中的核心RPC,包括RequestVote RPC的实现细节,如参数定义、响应体结构以及在不同类中的处理逻辑。此外,文章还提及了Follower转变为Candidate的条件,即选举超时机制。
摘要由CSDN通过智能技术生成

Election restriction

RequestVote RPC实现了这种限制:RPC包括了候选者log的信息,如果voter自己的日志比candidate的更新,则voter会拒绝掉它的投票。

比较日志哪个更新的算法如下,假设有
(iterm1, logEntryIndex1) 和 (iterm2, logEntryIndex2) 这两个二元组。
如果iterm 1 > iterm2 , 则 (iterm1, logEntryIndex1) 比 (iterm2, logEntryIndex2) 更新;
如果iterm1 = iterm2,然后比较logEntryIndex,如果 logEntryIndex1 > logEntryIndex2,则 (iterm1, logEntryIndex1) 比 (iterm2, logEntryIndex2) 更新。

Raft使用投票过程来实现:一个candidate的log只有包含所有commited entries才能从投票中获胜。

RaftServerProtocol

RaftServerProtocol协议类:
主要定义了4种raft的核心RPC。

public interface RaftServerProtocol {
   
  enu
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叹了口丶气

觉得有收获就支持一下吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值