首页 > 技术文章 > 学习简记:分布式系统的CAP理论

toulanboy 2021-04-06 12:59 原文

1. 概要

分布式系统的设计需要考虑CAP理论:一个分布式系统,无法同时满足CAP三个指标。

CAP是三个指标:

  • Consistency,一致性。
  • Availability,可用性。
  • Partition tolerance,分区容忍性。

2. 概念解读

维基百科中,CAP的定义如下:

  • Consistency: Every read receives the most recent write or an error
  • Availability: Every request receives a (non-error) response, without the guarantee that it contains the most recent write
  • Partition tolerance: The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes

从字面意思来说,

  • 一致性,指每个读请求都能获得最新的数据,否则返回失败。这表明,返回的数据要么是最新数据,要么失败。
  • 可用性,指每个读请求都能获得一个回应,而且不会响应错误。这表明,即使不是最新数据,也会返回。
  • 分区容忍性,指即使分区节点通讯时出现消息出现延迟或丢失,系统仍会继续提供服务。这表明,即使系统部分分区出现网络等网络,用户仍可继续使用。

3. CAP三者的权衡

对于一个分布式系统,必须满足分区容忍性P。而当出现分区错误时,必须在一致性C和可用性A之间做出抉择。

  • 当选择一致性C,由于分区数据不是最新,那么会返回错误或者一直等待至数据更新才返回。 (这个结果不满足可用性A)

  • 当选择可用性A,即使分区数据不是最新,也会返回当前分区的数据。(这个结果不满足一致性C)

author's blog == http://www.cnblogs.com/toulanboy/

参考

推荐阅读