涉及到调用flow模块的feign接口,集成seata后,全局事务能控制到吗?

Blade 已结 1 118
chengtian
chengtian 剑圣 2025-12-11 16:59

什么版本?4.5
涉及到调用flow模块的feign接口,集成seata后,全局事务能控制到吗?

1条回答
  •  admin
    admin (最佳回答者)
    2025-12-12 14:32

    不建议用seata,建议拆分业务,如果无法拆分,可手动判断feign调用是否成功,如果失败则调用方服务也手动抛异常

    作者追问:2025-12-12 14:32

    业务侧好回滚,flow流程引擎那边不好回滚,怕的就是flow成功,业务测失败了,回滚不了flow的。

    回答: 2025-12-12 14:32

    分布式事务能不用就不用,flow成功后,业务失败也是可以进行补救的,失败的话必须生成好详细的log日志(业务端失败,bladex底层也会写入到errorlog表里)你多加点失败的补救措施。


    当需要回写业务模块的时候,业务模块的status字段一开始设置为0,保存成功后status写成1。当业务失败后,status仍旧为0,这样就可以做二次处理。根据日志来回滚或者恢复数据,这个恢复的逻辑你也可以写成定时任务扫描后处理,也可以交给运维手动处理。


    另外你不用担心,以上是常规操作,哪怕是大厂也会有很多人工处理数据的情况,哪怕是用了分布式框架,也会经常丢数据,做好充分的补救措施,确保数据不会因为失败而丢失即可。

    0 讨论(1)
提交回复