分布式定理--CAP定理

cap定理指的是,在一个分布式系统中,只能满足cap中的两项。
cap定理

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返回旧数据,不满足一致性。

应用

  1. 一致性
    • 在系统中对数据比较敏感的数据,比如商品的价格,库存,需要保证一致性,放弃可用性。
  2. 可用性
    • 对于对数据不太敏感的数据,比如商品的名称,用户头像,昵称不敏感的数据,需要保证可用性,放弃一致性。
    • 网页的更新

参考

posted @   小码A梦  阅读(128)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示