spring事务传播机制案例
时间: 2023-12-17 22:02:50 浏览: 88
通过实际案例摸清楚Spring事务传播的行为.docx
假设有一个银行系统,其中有两个服务:转账服务和存款服务。
现在有一个场景,用户A想要将100元转账给用户B,并且在转账的同时,还想要将50元存入自己的账户中。这时候就需要使用到事务传播机制。
我们可以将这个场景拆分成两个服务,分别是转账服务和存款服务。在转账服务中,需要将A的账户减去100元,B的账户加上100元;在存款服务中,需要将A的账户加上50元。
如果这两个服务都是独立的,那么就可能出现一种情况,即在转账服务中,A的账户减去100元成功,但是在存款服务中,A的账户加上50元失败了,导致A的账户既扣了100元,又未加上50元,这样就会出现数据不一致的情况。
因此,我们需要使用到事务传播机制来保证这两个服务中的操作要么全部成功,要么全部失败。
在这个场景中,我们可以将转账服务和存款服务都设置为REQUIRED类型的事务传播机制,这样就可以保证这两个服务中的操作都在同一个事务中。如果其中一个服务执行失败了,那么整个事务也会回滚,保证数据的一致性。
阅读全文