## CAP ### C - 一致性 如果在某个节点更新了数据,那么在其他节点如果都能读取到这个最新的数据,那么就称为强一致,如果有某个节点没有读取到,那就是分布式不一致。即所有的节点同时看到相同的数据 ### A - 可用性 非故障的节点在合理的时间内返回合理的响应。任何时候,读写都是成功的。 ### P - 分区容错性 当部分节点出现消息丢失或故障的时候,分布式系统仍能正常工作。 ### 结论 CAP理论认为:一个分布式系统最多只能同时满足,一致性,可用性,分区容错性的三项中的两项。由于分区容错性是必然存在的,所以大部分分布式软件系统都在CP和AP中做取舍 ## BASE Base理论:即基本可用(Basically Available),软状态(Soft State),最终一致性(Eventually Consistent) 既然无法做到强一致性,那么不同的应用可用根据自己的业务特点,采用适当的方式来达到最终一致性。 Base理论是对CAP理论的实际应用 * **基本可用性**:不追求强可用性,而且强调系统基本能够一直运行对外提供服务,当分布式系统遇到不可预估的故障时,允许一定程度上的不可用,比如:对请求进行限流排队,使得部分用户响应时间变长,或对非核心服务进行降级。 * **软状态**:对于数据库中事务的原子性:要么全部成功,要不全部不成功。软状态允许系统中的数据存在中间状态。 * **最终一致性**:数据不可能一直都是软状态,必须在一个时间期限之后达到各个节点的一致性。在此之后,所有的节点的数据都是一致的。系统达到最终一致性。 ## 参考链接 https://segmentfault.com/a/1190000022740402