CAP理论

2007年7月,在PODC会议上Eric Brewer提出了著名的CAP理论,CAP分别代表的是Consistency,Availability,Partition-Tolerance三个短语的首字母,翻译成中文即数据一致性,数据可用性,分区耐受性。如图所示:


大型网站CAP理论和BASE模型

  • Consistency:所有的节点在同一时刻看到的数据是一样的,也就是数据的一致性
  • Availability:无论成功与否,都要保证每个请求都能收到响应。
  • Partition-Tolerance:如果有错误或者信息丢失,系统依然可以继续运行。

在分布式系统中想让以上三个条件全部满足那是基本不可能滴,但是我们可以根据系统的实际需求可以对以上三项进行设计和权衡。

  • CA:放弃P——分区耐受性,正如上图所示,正是我们传统的单机数据库——DBMS。
  • AP:放弃C——数据一致性,这个是大部分分布式系统设计的选择。
  • CP:放弃A——数据可用性,一般不会这么干,如果网络有问题的话,系统也基本就废了。

所以一般来讲还是首选A,至于P和C,根据实际需求在做讨论。

BASE模型

  • Basically Available:基本可用。
  • Soft State:软状态,可以一段时间内状态不同步。
  • Eventually consistent:最终一致性。

以上就是BASE模型,在大型网站中,一般都不会选择强一致性,强一致性意思就是数据在物理存储中总是一致的,想要保住强一致性,服务器需要付出较大的代价,所以一般会选择最终一致性,过程中一致不一致无所谓,只要最终结果一致就行了。

相关文章:

  • 2021-07-28
  • 2021-09-14
  • 2022-12-23
  • 2022-03-08
  • 2021-09-19
  • 2021-12-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-08
相关资源
相似解决方案