Seata中,tm 调用了rm ,然后rm失败回滚,tm这边不做任何处理的话,tm 的事务是commit正常提交的是吧?
RM失败回滚,TM肯定也需要回滚的啊,否者数据不一致了,怎么会正常commit呢,除非你的RM做了全局异常处理或者服务降级
在Seata中,如果TM(Transaction Manager)调用了RM(Resource Manager)后,RM执行失败并进行了回滚,那么TM这边不做任何处理的话,事务将不会正常提交。
Seata作为一个分布式事务解决方案,其工作流程大致如下:
在Seata的事务模型中,如果RM执行失败并触发了回滚,那么正常情况下,全局事务也应该被回滚。如果TM在收到RM回滚的消息后不进行任何处理,那么全局事务的状态可能会处于不确定状态,这通常是不被期望的。正确的做法是,当TM检测到分支事务执行失败时,它应该根据TC的指示来协调全局事务的回滚操作。
总结来说,如果RM执行失败并进行了回滚,TM通常也需对全局事务进行相应的回滚处理,以保证事务的一致性。如果TM没有做出响应,可能会导致事务状态异常,从而影响到整个分布式系统的业务正确性。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。