开发者社区 > 云原生 > 中间件 > 正文

seata分布式事务,看源码分支事务是在某一台机器循环依次提交的,提交过程中机器挂了,后续怎么恢复?

seata分布式事务,看源码分支事务是在某一台机器循环依次提交的,如果提交过程中机器挂了,后续怎么恢复?

展开
收起
鸡蛋灌饼儿 2023-01-27 14:13:34 258 0
2 条回答
写回答
取消 提交回答
  • 后续恢复的主要思路是通过异常日志和重试机制来进行。具体来说,当协调者发现某个分支事务失败时,会记录失败的事务日志。当故障机器恢复正常后,协调者会重新发起已失败的事务,并按照日志中的记录进行重试。

    2023-12-23 19:47:39
    赞同 1 展开评论 打赏
  • 北京阿里云ACE会长

    Seata 分布式事务在提交分支事务时,是在某一台机器上循环依次提交的。如果在提交过程中机器挂了,Seata 提供了事务日志来保证事务的可靠性。
    当一个分支事务在提交过程中发生异常时,Seata 将事务日志记录到磁盘上,以确保事务的数据不会丢失。当机器重新启动时,Seata 会根据事务日志来恢复事务,并尝试将未完成的事务提交或回滚。如果机器在提交分支事务之前就挂了,那么 Seata 会尝试从其他节点中获取该分支事务的状态,以便进行恢复。
    Seata 还提供了数据同步机制,以确保在提交分支事务时,不同节点之间的数据是一致的。如果节点在提交分支事务之前发生了网络故障,Seata 会尝试通过数据同步机制来恢复数据的一致性

    2023-12-19 20:36:18
    赞同 展开评论 打赏

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
让 MySQL 原生分布式触手可及 立即下载
云原生时代下的分布式云多集群管理-容灾,弹性,多集群负载分布 立即下载
《Seata 1.3 新特性以及如何参与社区》 立即下载