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

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

CAP

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

  • 一致性(C):对某个客户端来说,读操作必须能够返回最新的写操作的结果。
  • 可用性(A):非故障节点在合理的时间内返回合理的响应(不是错误或者超时的响应)。
  • 分区容错性(P):当出现网络分区后,系统能够继续“履行职责”。

虽然理论上三者必须牺牲一个,但在实际的分布式环境中,分区容错性(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)

  • Basically Availabel(基本可用):分布式系统在出现故障时,允许损失部分可用性,保证核心可用。
  • Soft State(软状态):系统允许出现中间状态,不影响整体可用性,对应CAP中的数据不一致状态。
  • Eventually Consistency(最终一致性的):系统中的数据副本经过一定时间后,可以达到最终一致性。

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

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

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页