写点什么

架构师训练营第 6 周作业

用户头像
netspecial
关注
发布于: 2020 年 11 月 01 日
  1. 请简述 CAP 原理。

  • 分布式系统


  • 分布式系统的三个指标:

  • 一致性 Consistency

  • 一致性是说,每次读取的数据都应该是最近写入的数据或者返回一个错误(Every read receives the most recent write or an error),而不是过期数据,也就是说,数据是一致的。访问一个系统,要么返回一个正确的数据,要么返回一个错误或者不返回,而不是一个过期的数据。

  • 不一致(Inconsistent)举例

  • 一致(Consistent)举例


  • 可用性 Availability

  • 可用性是说,每次请求都应该得到一个响应,而不是返回一个错误或者失去响应,不过这个响应不需要保证数据是最近写入的(Every request receives a (non-error) response, without the guarantee that it contains the most recent write),也就是说系统需要一直都是可以正常使用的,不会引起调用者的异常,但是并不保证响应的数据是最新的。

  • 分区耐受性(分区容错性) Partition tolerance

  • 大多数分布式系统都分布在多个子网络。每个子网络就叫做一个区(partition)。分区耐受性的意思是,区间通信可能失败。比如,一台服务器放在中国,另一台服务器放在美国,这就是两个区,它们之间可能无法通信。

上图中,G1 和 G2 是两台跨区的服务器。G1 向 G2 发送一条消息,G2 可能无法收到。系统设计的时候,必须考虑到这种情况。

对于一个分布式系统而言,网络失效一定会发生,也就是说,分区耐受性是必须要保证的,那么在可用性和一致性上就必须二选一。


所以,关于 CAP 原理,更准确的说法是,在分布式系统必须要满足分区耐受性的前提下,可用性和一致性无法同时满足。


用户头像

netspecial

关注

还未添加个人签名 2011.07.20 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第 6 周作业