前面博客主要介绍了,seata分布式事务,在业务代码中,是如何运行的,我们接下来进行一一拆解各个步骤的具体逻辑
这篇博客,主要介绍全局事务开启时,对应服务端的代码是如何处理的
前面入门博客中,有说过,开启全局事务是在这里的syncCall方法中,发送netty请求的,需要注意的是,这里的这个request请求对象很重要
服务端入口
我们接着来看netty服务端收到客户端的请求之后,是如何处理的,
入口是在:
io.seata.core.rpc.netty.AbstractNettyRemotingServer.ServerHandler#channelRead
在接收到客户端的请求之后,会接着进行一些逻辑判断,不管是开启全局事务的请求、还是回滚全局事务的请求、还是提交全局事务的请求,都会走到
io.seata.server.coordinator.DefaultCoordinator#onRequest
这个方法中,我们会看到,对应的handler,是根据request请求体的类型来处理的,我们这篇博客是记录开启全局事务的源码,所以,我们来看对应的逻辑