cap定理指的是,在一个分布式系统中,只能满足cap中的两项。
C consistency 一致性
A availability 可用性
P partition tolerance 分区可容错性 –在任意分区网络故障的情况下系统仍能继续运行
网络并不可靠,所以你应要支持分区容错性,并需要在软件可用性和一致性间做出取舍。
为何不能同时满足C和A
- 一般分布式系统中首先都要保证P(分区可容错性)
- 一致性指的是所有的节点返回的数据都是一致的
- 可用性指的是服务器在正常响应时间内可用
- 假设分布式系统有两个服务A和B,在A服务修改用户名admin,改成user
- 如果要满足一致性,即所有节点返回数据都是一致,访问B服务时,在A服务修改数据期间,需要锁定B服务读和写操作,修改完成后A和B服务返回都是更新后的数据,这样就不能保证可用性(因为有锁定时间)。
- 如果要保证可以性,在修改数据期间就不能锁定B服务的读和写操作,这样修改后,A返回更新后的数据,B返回旧数据,不满足一致性。
应用
- 一致性
- 在系统中对数据比较敏感的数据,比如商品的价格,库存,需要保证一致性,放弃可用性。
- 可用性
- 对于对数据不太敏感的数据,比如商品的名称,用户头像,昵称不敏感的数据,需要保证可用性,放弃一致性。
- 网页的更新
参考
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/15001.html