Spring 进阶-第十九篇:Spring Cloud-分布式事务处理
1. 分布式事务基础概念
1.1 分布式事务问题引出
在微服务架构中,一个业务操作通常需要调用多个服务完成。例如电商场景中:
- 订单服务创建订单(本地事务)
- 库存服务扣减库存(本地事务)
- 支付服务完成支付(本地事务)
传统本地事务的局限性:
- 跨服务操作无法通过单一数据库事务保证一致性
- 网络延迟、服务宕机等问题可能导致部分操作成功、部分失败
- 最终数据状态不一致(如订单已创建但库存未扣减)
典型场景:
- 跨数据库操作(订单在 MySQL,库存在 Redis)
- 跨服务调用(微服务拆分导致资源分布在不同节点)
1.2 分布式事务模型
1.2.1 两阶段提交(2PC)
- 阶段一(准备阶段):
- 协调者询问所有参与者是否可执行事务操作
- 参与者执行事务操作(锁定