分布式事务问题以及解决方案

分布式系统的事务,如下图,在员工系统里面首先调用本系统的接口来网员工数据表里面插入一条数据,然后通过远程调用财务系统和请假系统的接口来分别往财务数据表和请假数据表里面各插入一条数据! 如果发生了异常,比如说第一步插入员工数据没问题,第二步插入财务数据(比如给张三账户添加1000块钱)也没问题,但是在第三步插入请假数据的时候出异常了,这个时候事务回滚只能回滚“员工系统”自己系统的数据,如果要想回滚“财务系统”的数据,必须要我们手动调用“财务系统”的回滚接口(给张三账户减少1000块钱),这样就完成了整个分布式系统的回滚
在这里插入图片描述

第二种情况,解决方案是两阶段提交,第一次是先询问(预执行sql,如果预执行没问题,说明各个操作都可以正常执行),第二次就是执行各个操作然后提交事务
在这里插入图片描述

发布了340 篇原创文章 · 获赞 193 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/qq_40241957/article/details/104022212