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

在Seata中分支事务如何开启?

在Seata中分支事务如何开启?

展开
收起
花开富贵111 2024-08-12 14:41:53 50 0
1 条回答
写回答
取消 提交回答
  • 分支事务的开启是通过与全局事务协调器(TC)、事务管理器(TM)和资源管理器(RM)的交互来实现的呀
    首先需要先初始化TM和RM:

    应用启动时,需要初始化TM和RM客户端,绑定应用ID和服务组名,这有助于Seata识别和管理事务参与者。
    然后获取到全局的事务ID:在业务逻辑开始之前,通过TM客户端获取或创建一个全局事务ID(XID),这个XID会贯穿整个全局事务的生命周期,用于关联所有的分支事务。
    确保XID与当前执行事务的线程绑定,这样RM在处理分支事务时能识别到对应的全局事务上下文。

    在XID绑定后,执行业务代码,这期间涉及的数据库操作等资源操作会被RM监控和管理。对于JDBC操作,通常会使用Seata提供的DatasourceProxy来代理数据源,以透明地处理事务相关的逻辑。
    根据业务逻辑决定是否提交事务。如果是提交:
    image.png

    提交完事务后清理上下文就可以了,就这个步骤

    参考文档

    2024-08-24 13:32:00
    赞同 展开评论 打赏

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

相关电子书

更多
《Seata 1.3 新特性以及如何参与社区》 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载