CAP原则
概念
在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance),CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾
内容
一致性
-
所有节点再同一时间数据完全一致
-
端划分
- 客户端:并发访问获得到的数据是一致的
- 服务端:保证更新同步到整个系统,保证数据最终一致
-
时效划分
- 强一致性:数据更改后,后续的请求一定会拿到最新的数据
- 弱一致性:数据更改后,允许数据拿到不是最新的数据
- 最终一致性:数据更改后,允许过一段时间拿到最新的数据
可用性
- 服务一直可用
分区容错性
- 某节点或者网络分区(机房)出现故障时候,仍然能够对外提供一致性与可用性的服务
如何舍弃
舍弃容错性
- 系统无法满足分布式的使用场景,分布式的设计就是将系统分开部署到不同的机器上
舍弃可用性
- 允许部分时间服务不可用
舍弃一致性
-
并发访问时出现数据不一致
- 例如12306等抢票显示余票一但是没票了的场景