什么是CAP

consistency(C 一致性)表示更新操作成功后,所有节点在同一时间的数据完全一致

availability(A 可用性)用户访问时,结果是否符合预期

partitions(P 分区容错性)可以理解为容灾,在某节点下线的时候,是否依旧能提共满足CA的服务

这是一个简单的分布式系统

图1 分布式系统结构

三选二

指的是CAP理论中是没有办法达到三者共存的状态的。当我们选择其中两种特性的时候,便绝对没有办法保证另一种属性

CP状态

即要保证一致性和分区容错性。在图一中表现为订单系统要阻塞等待库存系统的结果返回后,才能返回。

AP

订单创建后,不等待库存减少后就返回结果。那库存数据怎么办?(异步处理后通知订单系统,若异步处理失败,有补偿机制(重新发请求,补录,校对程序)保证数据一致)。(类似淘宝)

AC

不拆分数据库系统,在一个数据库的一个事务中完成操作,即单体应用。下单,减库存在一个事务。缺点:不能做分区, 分区涉及网络,进而涉及分区容错性,进而选CP,AP