CAP(一致性,可用性,分区容错性)
一致性:需要保证多个网络节点的数据一致
可用性:一个服务在必须一直对外可用,一个有限的实现内返回结果
分区容错性:网络中任何出现异常之后,仍能对外提供一致性和可用性的服务。
放弃分区容错性:简单来说就是就是将所有节点都放在同一分区之中,也就是使用单体应用,但这样是放弃了扩展性。
放弃可用性:一旦网络分区发生故障,服务需要等待一段时间,即受影响的服务段时间内不可使用
放弃一致性放弃短时间之内的一致性,但是最终会达到一致的状态
结论: CAP永远不可能同时满足,最多只能同时满足两个,提高其中任意两者的同时,必然要牺牲第三者;
所以好的系统是根据具体应用,来决定如何在三者之间进行取舍。
Base理论,CAP的权衡和延伸
是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的缩写。BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结, 是基于CAP定理逐步演化而来的。BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。
1、基本可用
基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性。注意,这绝不等价于系统不可用。比如:
(1)响应时间上的损失。正常情况下,一个在线搜索引擎需要在0.5秒之内返回给用户相应的查询结果,但由于出现故障,查询结果的响应时间增加了1~2秒
(2)系统功能上的损失:正常情况下,在一个电子商务网站上进行购物的时候,消费者几乎能够顺利完成每一笔订单,但是在一些节日大促购物高峰的时候,由于消费者的购物行为激增,为了保护购物系统的稳定性,部分消费者可能会被引导到一个降级页面。