Fork me on GitHub

Raft算法

分布式系统

​ 分布式系统是一组共同努力实现统一目标的计算机。系统对于最终用户来说的一个整体。狭义来讲单个计算机也可以被视为分布式系统:中央控制单元,存储器单元和输入 - 输出通道是协作以完成目标的单独过程。而更多时候我们谈论的分布式系统是空间分离的计算机(节点服务器)。

一致性算法

​ 一致性算法。其中Paxos)于20世纪90年代推出,是第一个真实的,实用的,容错的一致性算法。但Paxos的复杂性让人感到头疼,为了提升可理解性,2013年,Ongaro和Ousterhout发布了一种名为Raft的复制状态机的新共识算法。

容错性/复制状态机

​ 在一个分布式系统中,会发生各种意外使得有的服务器崩溃或变得不可靠,它就不能和其他服务器达成一致状态。所以我们一般都是以容错的方式达成一致性,只要超过半数的大多数服务器达成一致就可以了,假设有N台服务器,N/2 +1 就超过半数,代表大多数了。

​ 复制状态机:通过复制服务副本,并和副本一起来协调客户端的交互,来实现容错服务。

图 1

复制状态机的结构。一致性算法管理着来自客户端指令的复制日志。状态机从日志中处理相同顺序的相同指令,所以产生的结果也是相同的。

Raft 一致性算法