- 使用@Transactional注解时,这个事务是MySQL层控制,回滚的操作也是MySQL控制的
- MySQL事务的commit语句是在第一次执行MySQL相关语句开始,一直到方法的结束。
- 在执行方法中有异常,则回滚
利用以上几点我想。
在使用springcloud时,分布式事务是必须要解决的问题,可以利用上述几点,通过抛异常来回滚,但限制是在一个方法中只调用一个外部的接口,如果调用外部接口时出错就抛出异常,在方法中接收这个异常抛出则会回滚。
如果是调用多个外部接口,可以把这个些外部接口能合并就合并,合并之后,把第一个外部接口之后的接口放到第一个外部接口中调用,有关系的连接起来。
参考文献
https://blog.csdn.net/timchen525/article/details/81517748