架构 2 期 - 第六周作业(1)
请简述 CAP 原理。
一、基本概述
在分布式系统设计中,由于其分布式特性,认为不同网络内的服务器在不同的分区,由于网络通信的不确定性,不同分区间网络不一定能时时联通,因此导致了C(一致性)和A(可用性)不能同时满足,存在冲突。
二、解释
存在不同分区的两台服务器S1和S2,如果用户在S1上进行了数据更新,但是由于网络中断,导致S2上未能及时更新,则对S2上数据的访问时,可能有两种处理方式。一种是锁定中断连接的S2,让其服务不可用,待网络恢复再提供服务,失去了可用性。二是还让其提供服务,但是这样其数据的获取便可能是旧数据,或者你更新数据后,就会带来联通后的数据冲突问题,但还是失去了一致性。
综上:CAP原则就是一致性和可用性无法同时保证。
三、如何选择
是优先保证一致性还是可用性,还是应该取决于业务场景。
如果业务场景对于数据的一致性要求并不高,用户可以拿到老的数据,而且也有冲突合并的措施和手段,更加偏向可用性指标。
如果业务场景对于数据的一致性要求严格,则就需要牺牲可用性指标。
评论