分布式一致性算法¶
分布式一致性的算法也叫作共识(Consensus)算法。共识表示在多台机器之间,能同步一个内容不断增加的文件。需要考虑的问题: - 装有文件的机器出了问题怎么办 - 如何确保找到的机器刚好就有完整的文件 - 文件内容不断在增加,如何确定增加的内容也是正确
共识算法更多是被用来同步非常重要但是数据量不大的文件。如进行云计算的时候,就需要知道机器都是哪些。这些描述信息都很重要,但是数据量不大,它们就可以存储在共识后的文件里。它可以实现全序广播
和线性化存储
。分布式理论有一个很有用的结论是,共识能力等价于全序广播
,也等价于线性化存储
。因此全序广播
和线性化存储
之间也是等价的。
全序广播(Total Order Broadcast)¶
- 所有机器的消息都不能丢失。如果一台机器上出现了某个消息,那么这个消息一定能在所有其他机器上找到。
- 所有机器记录的消息的顺序完全一致。
线性化存储(Linearizable Storage)¶
线性化存储是一个分布式的数据存储集群,保证了所有操作是可线性化的,即所有操作都可以重新排序,并在排序之后,这些操作能先后顺序执行,并且最后生成合理的结果。
Raft¶
- 主从(Leader and Follower)在任何一个时间点,整个集群最多只有一个主节点,其他的都是从节点。
TBD