Raft共识算法

首先,本文是从英文翻译过来的,可能有些词语翻译的不够准确,请读者海涵。

什么是raft呢?

Raft是一个易于理解的共识算法。

它在容错和性能方面与Paxos相当。

不同的是,它被分解成相对独立的子问题,并且它干净地解决了实际系统所需的所有主要部分。

希望Raft共识提供给更广泛的受众,并且这些更广泛的受众将能够开发各种比今天可用的更高质量的基于共识的系统。

一致性是容错分布式系统的一个基本问题。

共识是指多个服务器在价值观上达成一致。

一旦他们对一个价值做出了决定,这个决定就是最终的。

典型的共识算法在大多数服务器可用时才会取得进展;例如,5台服务器的集群可以在2台服务器故障的情况下继续运行。如果有更多服务器失败,它们就会停止运行(但永远不会返回错误的结果)。

共识通常出现在复制状态机上下文中,这是构建容错系统的一般方法。

每个服务器都有一个状态机和一个日志。状态机是我们希望实现容错的组件,比如散列表。即使集群中的少数服务器发生故障,客户机也会认为它们正在与一个单一的、可靠的状态机交互。

每个状态机从其日志中接受输入命令。

在我们的哈希表示例中,日志将包括像set x to 3这样的命令。

共识算法用于对服务器日志中的命令达成一致。

共识算法必须确保,如果任何状态机应用set x to 3作为第n个命令,其他状态机将不会应用不同的第n个命令。

因此,每个状态机处理相同系列的命令,从而产生相同系列的结果,并到达相同系列的状态。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章