开发者社区> 问答> 正文

Raft与Multi-Paxos有什么不同?

Raft与Multi-Paxos有什么不同?

展开
收起
张柠檬 2022-05-11 22:39:32 372 0
来自:阿里技术
1 条回答
写回答
取消 提交回答
  • Raft假设系统在任意时刻最多只有一个Leader,提议只能由Leader发出(强Leader),否则会影响正确性;而Multi-Paxos虽然也选举Leader,但只是为了提高效率,并不限制提议只能由Leader发出(弱Leader)。

    强Leader在工程中一般使用Leader Lease和Leader Stickiness来保证:

    Leader Lease:上一任Leader的Lease过期后,随机等待一段时间再发起Leader选举,保证新旧Leader的Lease不重叠。 Leader Stickiness:Leader Lease未过期的Follower拒绝新的Leader选举请求。 Raft限制具有最新已提交的日志的节点才有资格成为Leader,Multi-Paxos无此限制。

    Raft在确认一条日志之前会检查日志连续性,若检查到日志不连续会拒绝此日志,保证日志连续性,Multi-Paxos不做此检查,允许日志中有空洞。

    Raft在AppendEntries中携带Leader的commit index,一旦日志形成多数派,Leader更新本地的commit index即完成提交,下一条AppendEntries会携带新的commit index通知其它节点;Multi-Paxos没有日志连接性假设,需要额外的commit消息通知其它节点。

    2022-05-12 15:36:44
    赞同 展开评论 打赏
问答地址:
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
Fault Tolerance in Spark 立即下载
Flink State & Fault Tolerance 立即下载
低代码开发师(初级)实战教程 立即下载