分布式系统:CAP

一致不太理解CAP,最近好像有点感觉了,这里写下来,先介绍下CAP的定义:

  • C:一致性。写完数据后,立马能看到最新数据。
  • A:可用性。所有请求必须有响应。
  • P:分区容错性。网络或服务器故障不会导致系统不可用。

CAP定律这样定义,任何一个分布式系统不可能同时满足这三种特性。下面做一下简单的分析:

一般的大型系统都要求做到分区容错性,如:提供网络、应用服务器和数据服务器的灾备,这样我们就只能在C和A中做出选择,如果选择了C,就要求写操作同时向集群内的多个服务器同步的写,这样识别效率就低,在高并发的场景下,操作很容易超时,导致不可用。相对于A,我们更需要牺牲C,这样最终就采用:最终一致性。