分布式定理--CAP定理

cap定理指的是,在一个分布式系统中,只能满足cap中的两项。
分布式定理--CAP定理_第1张图片

C consistency 一致性
A availability 可用性
P partition tolerance 分区可容错性 --在任意分区网络故障的情况下系统仍能继续运行

网络并不可靠,所以你应要支持分区容错性,并需要在软件可用性和一致性间做出取舍。

为何不能同时满足C和A

  1. 一般分布式系统中首先都要保证P(分区可容错性)
  2. 一致性指的是所有的节点返回的数据都是一致的
  3. 可用性指的是服务器在正常响应时间内可用
  4. 假设分布式系统有两个服务A和B,在A服务修改用户名admin,改成user
  5. 如果要满足一致性,即所有节点返回数据都是一致,访问B服务时,在A服务修改数据期间,需要锁定B服务读和写操作,修改完成后A和B服务返回都是更新后的数据,这样就不能保证可用性(因为有锁定时间)。
  6. 如果要保证可以性,在修改数据期间就不能锁定B服务的读和写操作,这样修改后,A返回更新后的数据,B返回旧数据,不满足一致性。

    应用

  7. 一致性

    • 在系统中对数据比较敏感的数据,比如商品的价格,库存,需要保证一致性,放弃可用性。
  8. 可用性

    • 对于对数据不太敏感的数据,比如商品的名称,用户头像,昵称不敏感的数据,需要保证可用性,放弃一致性。
    • 网页的更新

      参考

  9. CAP 定理的含义 阮一峰

你可能感兴趣的