架构师训练营第六周作业
请简述 CAP 原理。
先简单地介绍下什么是 CAP。
C 指的是一致性,指的是访问所有结点取得的数据都是一样的,指的是强一致性。
A 指的是高可用性,指的是所有结点都是高可用的,不能出现延迟现象。
P 指的是分区容错性,指的是由于网络是不可靠的,所有节点之间很可能出现无法通讯的情况,在节点不能通信时,要保证系统可以继续正常服务。
CAP 原理指的是在分布式系统中不可能同时满足 C 和 A 和 p 三个条件的情况,在进行架构设计时,不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。由于网络的不可靠性质,大多数开源的分布式系统都会实现 P,也就是分区容忍性,之后在 C 和 A 中做抉择。
虽然在设计系统时不能同时满足三个条件,但是也并不是说,保证了其中 2 点后,就要完全抛弃另外一点。只是相对的要做一些牺牲。比如在保证 CP 的情况下,虽然没办法保证高可用性,但这不意味着可用性为 0,我们可以通过合理的设计尽量的提高可用性,让可用性尽可能的接近 100%。同理,在 AP 的情况下,也可以尽量的保证数据的一致性,或者实现弱一致性,即最终一致性。
评论