什么版本?4.5
涉及到调用flow模块的feign接口,集成seata后,全局事务能控制到吗?
不建议用seata,建议拆分业务,如果无法拆分,可手动判断feign调用是否成功,如果失败则调用方服务也手动抛异常
业务侧好回滚,flow流程引擎那边不好回滚,怕的就是flow成功,业务测失败了,回滚不了flow的。
分布式事务能不用就不用,flow成功后,业务失败也是可以进行补救的,失败的话必须生成好详细的log日志(业务端失败,bladex底层也会写入到errorlog表里)你多加点失败的补救措施。
当需要回写业务模块的时候,业务模块的status字段一开始设置为0,保存成功后status写成1。当业务失败后,status仍旧为0,这样就可以做二次处理。根据日志来回滚或者恢复数据,这个恢复的逻辑你也可以写成定时任务扫描后处理,也可以交给运维手动处理。
另外你不用担心,以上是常规操作,哪怕是大厂也会有很多人工处理数据的情况,哪怕是用了分布式框架,也会经常丢数据,做好充分的补救措施,确保数据不会因为失败而丢失即可。
扫一扫访问 Blade技术社区 移动端