Ender's Blog

分布式计算相关理论总结

| Comments

CAP理论

C:一致性 分布式系统中所有的节点在某一时刻数据必须是一致的

A:可用性 指的是分布式系统能够一直对外响应服务。

P:分区容忍性 指在分布式系统各个节点之间网络消息丢失或者延迟依然能够对外服务。

CAP理论断言一个分布式系统只能满足以上三个特性中的两个,由于分布式系统中不能够保证所有节点之间的通信是绝对稳定的,所以P几乎是必选,接下来就C还是A的问题了, 要保持强一致性的话,在所有节点数据没有同步之前系统将会失去可用性,如果要保持高可用性,必然要丢失一些一致性。所以许多分布式系统为了保证可用性,牺牲了 强一致性的特性,只保证系统的最终一致性,例如dns,cassandra等。

Google最近推出的cloud spanner宣称同时提供了强一致性和高可用性,有兴趣的话可以看看这篇文章-谷歌新发布的分布式数据库服务,是要打破CAP定理了吗?

Raft一致性算法

Raft源于Paxos算法过于复杂, 作为替代品而出现,它比Paxos算法更易于理解。

Raft一致性算法通过选举leader、只通过leader写数据然后同步到follower节点来保证强一致性。 这其中leader选举的过程、leader如何同步数据到follower节点以及脑裂的情况处理,这篇文章Raft 为什么是更易理解的分布式一致性算法讲得非常通俗易懂.

Comments