分布式中一致性是非常重要的,分为弱一致性和强一致性。现在主流的一致性协议一般都选择的是弱一致性的特殊版本:最终一致性。下面就从分布式系统的基本原则讲起,再整理一些遵循这些原则的协议或者机制,争取通俗易懂。但是要真正实施起来把这些协议落地,可不是一片文章能说清楚的,有太多的细节,要自己去看论文呐(顺着维基百科找就行了)。
基本原则与理论
CAP(Consistency
一致性,Availability
可用性,Partition tolerance
分区容错性)理论是当前分布式系统公认的理论,亦即一个分布式系统不可能同时满足这三个特性,只能三求其二。对于分布式系统,P
是基本要求,如果没有P
就不是分布式系统了,所以一般都是在满足P
的情况下,在C
和A
之间寻求平衡。
ACID(Atomicity
原子性,Consistency
一致性,Isolation
隔离性,Durability
持久性)是事务的特点,具有强一致性,一般用于单机事务,分布式事务若采用这个原则会丧失一定的可用性,属于CP
系统。
BASE(Basically Availabe
基本可用,Soft state
软状态,Eventually consistency
最终一致性)理论是对大规模的互联网分布式系统实践的总结,用弱一致性来换取可用性,不同于ACID,属于AP
系统。