分布式事务SAGA方案实现方式有两种
(1) SAGA - Choreography 策略
通过事件驱动的方式来进行事务协调
代码实现方式:
订单服务使用@Transactional注解先执行本地事务再调用库存服务
库存服务使用@Transactional注解先执行本地事务再调用物流服务
物流服务使用@Transactional注解执行本地事务
如果物流服务执行失败本地事务回滚,先触发库存服务本地事务回滚,再触发订单服务本地事务回滚
(2) SAGA - Orchestration 策略
集中式协调器负责服务调用以及事务协调,阿里的 Seata 分布式事务框架中实现了此策略