目录
什么是事务
我们先来回顾下什么是事务
https://blog.csdn.net/Delicious_Life/article/details/105466757
什么是分布式事务
指的是分布式环境下不同服务之间通过网络远程协作完成的事务。
传统的方式无法解决分布式事务问题:
上图是一个分布式事务小例,你会想到@Transactional,这个注解是spring对数据库事务的java实现。
当1和2都完全成功的确保证了事务成立。可是如果1成功,2成功且2没有返回它成功的信息时,本地事务等待超时会被认为提交失败导致回滚,张三会看到交易失败,没扣钱。但李四会发现自己的钱交易成功却没变,这就出现分布式事务问题了~。
思考下为什么会出现远程服务成功但本地事务收不到的情况?因为网络具有不可靠性!
分布式事务使用场景
1.微服务之间远程调用完成事务操作
2.单体系统访问多个数据库实例(分布式部署的数据库)
3.多服务访问同一个数据库实例