seata源码-开启全局事务服务端源码

本文深入探讨了seata服务端处理全局事务开启的源码流程。从服务端入口`AbstractNettyRemotingServer.ServerHandler#channelRead`开始,详细讲解了`DefaultCoordinator#onRequest`和`GlobalBeginRequest#handle`方法中的处理逻辑。重点分析了如何生成全局事务ID,以及`DefaultCore#begin`和`session.begin()`方法中的操作,包括在`LogStoreDataBaseDAO#insertGlobalTransactionDO`中向`global_table`写入事务记录。总结了服务端在全局事务管理中的核心步骤,帮助理解seata分布式事务的实现机制。
摘要由CSDN通过智能技术生成

前面博客主要介绍了,seata分布式事务,在业务代码中,是如何运行的,我们接下来进行一一拆解各个步骤的具体逻辑
这篇博客,主要介绍全局事务开启时,对应服务端的代码是如何处理的
在这里插入图片描述

前面入门博客中,有说过,开启全局事务是在这里的syncCall方法中,发送netty请求的,需要注意的是,这里的这个request请求对象很重要

服务端入口

我们接着来看netty服务端收到客户端的请求之后,是如何处理的,
入口是在:

io.seata.core.rpc.netty.AbstractNettyRemotingServer.ServerHandler#channelRead

在接收到客户端的请求之后,会接着进行一些逻辑判断,不管是开启全局事务的请求、还是回滚全局事务的请求、还是提交全局事务的请求,都会走到

io.seata.server.coordinator.DefaultCoordinator#onRequest

这个方法中,我们会看到,对应的handler,是根据request请求体的类型来处理的,我们这篇博客是记录开启全局事务的源码,所以,我们来看对应的逻辑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值