CAP理论是什么?ACID和BASE的区别是什么?业务补偿是什么?业务补偿的设计重点有哪些?

打卡Day15:今天学习了《46|弹力设计篇之“补偿事务”》,我的收获如下:

CAP理论

在分布式的服务架构中,一致性(Consistency)、可用性(Availability)、分区容忍性(Partition Tolerance),最多只能满足其中两个。

ACID

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 持久性(Durability)

强调一致性(CAP的C)。

BASE

  • 基本可用(Basic Availability)
  • 软状态(Soft State)
  • 最终一致性(Eventual Consistency)

强调可用性(CAP的A)。

ACID和BASE比较

  • ACID有更强的一致性,可伸缩性差;
  • BASE的一致性较弱,可伸缩性很好,还可以异步批量处理。

大多数分布式事务适合BASE。

业务补偿

努力地把一个业务流程执行完成、如果执行不下去,需要启动补偿机制,回滚业务流程。

业务补偿的设计重点

  • 服务方支撑幂等性、上游有重试机制;
  • 控制整个业务流程的高可用的工作流引擎;
  • 设计业务的反向补偿流程;
  • 强业务相关很难做成通用的;
  • 下层业务方提供短期资源预留机制(下单后15分钟支付时间)。

左耳朵耗子带你重学《左耳听风》

https://time.geekbang.org/column/article/4087