程序员数据分析基础:从零开始学架构读书笔记(1)

CAP

CAP定理:在一个分布式系统(指互联并共享数据的集群)中,当涉及读写操作时,只能保证一致性(Consistence)、可用性(Availability)、分区容错性(Partition Tolerance)三者中的两个,另外一个必须被牺牲。

虽然理论上三者必须牺牲一个,但在实际的分布式环境中,分区容错性(P)是必须的,而且在正常运行情况下也要保证CA的,只有在出现网络分区问题的时候才会选择是保C还是保A,从而形成了CP或者AP架构:

CP架构,当不同节点数据无法有效同步(网络分区)时,为了保证C,请求会返回报错。

AP架构,当不同节点数据无法有效同步(网络分区)是,为了保证A,请求可能返回旧数据。

程序员数据分析基础:从零开始学架构读书笔记(2)

ACID

ACID是RDBMS中为了保证事务的强一致性提出的理论

程序员数据分析基础:从零开始学架构读书笔记(3)

BASE

BASE是Basically Availabel(基本可用)、Soft State(软状态)、Eventually Consistency(最终一致性的)三个短语的缩写,其核心思想是即使无法做到强一致性(CAP的一致性就是强一致性),但应用可以采用合适的方式达到最终一致性(Eventual Consistency)。

程序员数据分析基础:从零开始学架构读书笔记(4)

BASE其实是对CAP的延伸和补充,更具体的说是对AP方案的补充。

  1. CAP的理论忽略延迟,而实际中延时无法避免,完美的CP场景不存在,都是需要经过一定时间(即使很小)才能实现一致性;
  2. AP方案只在分组期间牺牲一定的一致性,不是永远放弃一致性。
,