Skip to content

1、什么是本地事务 ​

  • A(Atomic):原子性,构成事务的所有操作,要么都执行完成,要么全部不执行。不可能出现部分成功部分失败。

  • C(Consistency):一致性,在事务执行前后,数据库的一致性约束没有被破坏。比如:张三向李四转100元。转账前和转账后的数据是正确状态,这叫一致性。如果出现张三转出100元,李四账户没有增加100元,这就出现了数据错误,就没有达到一致性。

  • I(Isolation):隔离性,数据库中的事务一般都是并发的。隔离性是指并发的两个事务的执行互补干扰。一个事务不能看到其他事务运行过程的中间状态。通过配置事务隔离级别可以避免脏读、重复读这类问题。

  • D(Durability):持久性,事务完成之后,该事务对数据的更改会被持久化到数据库,且不会被回滚。数据库事务在实现时会将一次事务涉及的所有操作全部纳入到一个不可分割的执行单元。该执行单元中的所有操作要么都成功,要么都失败。只要其中任一操作执行失败,都将导致整个事务的回滚。

2、什么是分布式事务 ​

分布式系统会把一个应用系统拆分成可独立部署的多个服务。因此需要服务与服务之间远程协作才能完成事务操作。这种分布式系统环境下的事务机制称之为分布式事务。

3、分布式事务产生的场景有哪些 ​

1)典型的场景就是微服务架构

微服务之间通过远程调用完成事务操作。比如:订单微服务和库存微服务,下单的同时订单微服务请求库存微服务减少库存。简言之:跨JVM进程产生分布式事务。

2)单体系统访问多个数据库实例

当单体系统需要访问多个数据库(实例)时就会产生分布式事务。比如:用户信息和订单信息分别在两个MySQL实例存储。用户管理系统删除用户信息,需要分别删除用户信息以及用户的订单信息。由于数据分布在不同的数据实例,需要通过不同的数据库链接去操作数据。此时产生分布式事务。

3)多服务访问同一个数据库实例

比如:订单微服务和库存微服务即使访问同一个数据库也会产生分布式事务。原因就是跨JVM进程,两个微服务持有了不同的数据库链接操作数据库。此时产生分布式事务。

4)概括起来,分布式事务有三种情况

  • 跨数据库分布式事务

  • 跨服务分布式事务

  • 混合式分布式事务

来源:早期整理篇(出处不可考,2026-10 核实未果)——内容为分布式事务概念综述,如需引用请以教科书/权威文档为准。