什么是CAP定理
CAP定理是分布式架构的基本理论,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。
- C:更新操作成功后,所有节点在同一时间的数据完全一致。
- A:用户访问数据时,系统能否在正常响应时间返回预期结果。
- P:分布式系统遇到某节点或网络分区故障的时候,仍能对外提供一致性和可用性的服务。
CAP这三个要素最多只能同时实现两点,不可能三者兼顾。
大概来说就是在容错性和响应速度及数据一致性中间做取舍
场景举例
以一个分布式架构中的下单和库存场景举例说明:
CP:订单创建后,等待库存减少后才返回结果。保证数据一致,强一致性表现,用户体验差。(类似银行存钱)
AP:订单创建后,不等待库存减少后就返回结果。那库存数据怎么办?(异步处理后通知订单系统,若异步处理失败,有补偿机制(重新发请求,补录,校对程序)保证数据一致)。(类似淘宝)
AC:不拆分数据库系统,在一个数据库的一个事务中完成操作,即单体应用。下单,减库存在一个事务。缺点:不能做分区, 分区涉及网络,进而涉及分区容错性,进而选CP,AP。