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分钟支付时间)。