由于blog各种垃圾评论太多,而且本人审核评论周期较长,所以懒得管理评论了,就把评论功能关闭,有问题可以直接qq骚扰我

CAP定理

架构设计 西门飞冰 1825℃

什么是CAP定理

CAP定理是分布式架构的基本理论,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。

  • C:更新操作成功后,所有节点在同一时间的数据完全一致。
  • A:用户访问数据时,系统能否在正常响应时间返回预期结果。
  • P:分布式系统遇到某节点或网络分区故障的时候,仍能对外提供一致性和可用性的服务。

CAP这三个要素最多只能同时实现两点,不可能三者兼顾。

大概来说就是在容错性和响应速度及数据一致性中间做取舍

但是在分布式场景下,只能在CP和AP之间选择,因为分布式系统必须要考虑分区的情况,所以这个P是必须要存在的。

image-20221008174431687

场景举例

以一个分布式架构中的下单和库存场景举例说明:

image-20221008175809474

CP:订单创建后,等待库存减少后才返回结果。保证数据一致,强一致性表现,用户体验差。(类似银行存钱)

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

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

转载请注明:西门飞冰的博客 » CAP定理

喜欢 (1)or分享 (0)