CAP:网络
C:一致性:在分布式系统中是指多个副本之间可否保持一致性;分布式
A:可用性:系统提供的服务必须一直处于可用的状态,对于用户的每个请求老是在有限的时间内返回结果;spa
P:分区容错性:该特性约束了分布式系统须要具有如下特性:分布式系统遇到网络分区故障的时候,仍然须要能保证对外提供知足一致性和可用性的服务,除非整个网络环境都发生故障。设计
CAP定理示意图ci
因而可知要想三方面都与考虑到,那是不可能,咱们只能妥协,同步
放弃CAP | 说明 |
放弃A | 若是但愿可以避免分区容错性,那么最简单的方法就是将全部的数据放到分布式的一个节点上,可是有一点就是放弃P就意味着放弃了系统扩展的可能性。table |
放弃C | 相对于放弃“分区容错性”来讲,放弃可用性正好相反,其作法就是一旦系统遇到网络分区或其余故障的时候,那么影响的服务就须要等待一段时间,由于等待期间系统没法对外提供服务,即不可用。扩展 |
放弃P | 这里说的放弃一致性,并非彻底不须要数据一致性,若是是那样的话,系数据就没有什么意义,系统也就没有什么意义。请求 事实上,此处所说的放弃一致性是指放弃强一致性,保存了数据最终一致性,这样的系统没法保证数据实时一直,可是承诺的是,数据最终会达到一个一致的状态。具体多久能达到一致性,取决于系统的设计,主要就是不一样副本之间数据的复制时间长短 |
由此能够看出,咱们不可能丢弃A和C,只能在P上面作文章,方法
Base定理:
Basically Available:基本可用,分布式系统出现不可预知的错误的时候,容许损失部分可用性,可是绝对不等于系统不可用;
Soft State:软状态:和强状态对应,是指容许系统中的数据存在中间状态,而且认为该中间状态不会影响系统的可用性,即容许系统不一样节点之间的数据副本复制存在延时;
Eventually consistent:最终一致性 ,最终一致性强调的是系统中全部的数据副本,在通过一段时间的同步事后,最终能达到一个一致性的状态。所以最终一致性的本质就是须要系统保证数据最终能达到一致,可是不须要实时保持数据一致的状况。
综上咱们会发现基本都是在分区一致性上作文章,待续...