CAP定理

向东       2024/05/17       技术       共615字       569

概念

  • C(Consistency):一致性
    • 代表更新操作成功后,所有节点再同一时间的数据完全一致
  • A(Availability):可用性
    • 代表用户访问数据时,系统是否能够在正常响应时间返回预期结果
  • P(Partitioning):分区容错性
    • 分布式系统再遇到某节点或网络分区故障时,依然能够对外提供满足一致性或可用性的服务

三者不可能同时满足,要么满足CA,要么满足AP,要么满足CP

CAP定理 - 第1张图片

举例

如下图,当前有两个系统,一个订单系统,一个库存系统,俩系统是独立的,通过网络进行数据传输。当用户下了订单后,库存系统需要进行减库存的操作,下面是几种不同的设计思路:

CAP定理 - 第2张图片

  • CP模式
    • 订单创建后一直等待库存减少才返回结果
    • 优点:保证了数据的强一致性
    • 缺点:用户体验差,如果库存系统出了问题,用户会一直等待
  • AP模式
    • 订单创建后不等待库存减少就立即返回结果
    • 优点:用户体验好
    • 缺点:牺牲了数据的强一致性,库存异步处理,如果库存因为各种问题没有减少成功,数据出现了不一致,系统就需要做一些补偿机制,比如说重新发起请求、人工进行补录,采用数据校对程序把数据补全等等。来保证最终数据是一致的
  • AC模式
    • 把订单系统和库存系统放一起的单体系统中。
    • 在一个数据库的一个事务中完成操作
    • 数据不在分区(没有了P)

使用场景

  • CP:常用在银行、金融、证券对数据一致性要求很好的场景
  • AP:常用在互联网的应用中,照顾用户的使用体验
  • AC:小公司,数据要一直,响应要快,没分区
  • ACP:做不到!又要快又要一致,又要分区。

除非注明,向东的笔记本文章均为原创,本文地址 https://www.mengxiangdong.com/jishu/131.html,转载请以链接形式注明出处。

作者: 简介:

《CAP定理》留言数:0

发表留言