CAP原理指的是在一个跨区域网络连接,共享数据的分布式系统中,数据同步的三大约束特性即 Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),但由于三者存在”矛“与”盾“的关系所以不能三者同时满足只能满足其二
首先对于分区容错性是我们必须要去满足的,因为网络的稳定性是未知因素,极大可能会出现,节点之间无法通讯延迟丢包的情况,在节点不能通信时,要保证系统可以继续正常服务,如果系统不能支持这一点,将会限制分布式系统的扩展性,即服务节点的部署数量和地区都会受限,也就违背了设计分布式系统的初衷,所有我们只能在一致性和高可用性之间去权衡,换句话说如果,保证要数据一致性就需要在网路出问题时花费更多的时间来实现数据的同步再返回 但这样就会丧失可用性 用户使用感不佳,反之,如果追求高可用性则会导致网络波动时返回的数据不是最新数据,丧失数据的一致性(备注:目前大多是选择A和P而C则可以选择最终一致性即可并不追求强一致性,因为很多系统对于实时数据一致性要求并不高,最终一致就可以满足系统需求)
BASE理论是由三要素组成:基本可用(Basically Available)、软状态(Soft-state)、最终一致性(Eventually Consistency)。
BASE 理论是分布式系统经过社会时间长期的实践和应用的一种结果,更多的是反映 CAP 中的一致性和可用性进行一个权衡的结果其中核心理论是:虽然无法保证同步数据的强一致(在数据同步的任何时候,都需要保证所有对该份数据的请求将返回同样的状态),但每个应用都可以根据自身的业务特点,放弃强一致性而采用适当的方式来使系统达到最终一致性的目的。