场景:多个服务或者多个库,要保持在一个事务中。
分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免。
理论:ACID、CAP、BASE。
ACID
指数据库事务正确执行的四个基本要素
1. 原子性(Atomicity)
2. 一致性(Consistency)
3.隔离性(Isolation)
4.持久性(Durability)
CAP
CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容忍性(Partition tolerance)。CAP 原则指的是,这三个要索最多只能同时实现两点,不可能三者兼顾。
- 一致性:在分布式系统中的所有数据备份,在同一时刻是否同样的值。
- 可用性:在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。
- 分区容忍性:以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
BASE理论
BASE理论是对CAP中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。
Basically Available(基本可用)
Soft state (软状态)
Eventually consistent (最终一致性)
解决方案:seata,消息队列+本地事件表,事务消息,最大努力通知方案,tcc