- 博客(6)
- 收藏
- 关注
原创 Seata解析-TM、RM、TC交互流程梳理
本文基于seata 0.7.1版本seata涉及到三个角色之间的交互,本文通过流程图将AT模式下的基本交互流程梳理一下,为我们以后的解析打下基础。假设有三个微服务,分别是服务A、B、C,其中服务A中调用了服务B和服务C,TM、TC、RM三者之间的交互流程如下图:1、服务A启动时,GlobalTransactionScanner会对有@GlobalTransaction注解的方法进行AOP增强,并生成代理,增强的代码位于GlobalTransactionalInterceptor类中,当调用@Gl.
2020-08-31 22:20:11 11562 20
原创 Seata解析-seata服务端启动初探
本文基于seata 1.3.0版本文章《Seata解析-seata部署启动初体验》介绍了seata的功能。seata提供四种方式解决了分布式事务问题,seata使用客户端-服务器模式,TM和RM作为客户端,TC作为事务协调者部署在服务端。seata的服务端独立部署,功能相对简单,因此从解析服务端开启探索seata的步伐。本文目录一、服务端的启动脚本二、服务端启动类Server一、服务端的启动脚本seata服务端启动需要使用启动脚本,启动脚本位于bin目录下:第一个文件是Windows系统使.
2020-08-31 17:40:38 1897
原创 Seata解析-seata整体架构初探
本文基于seata 0.7.1版本从本文开始,我计划分析seata的源代码,学习一下分布式事务的几种实现方式。我分析的版本是基于seata 0.7.1。下图显示的是seata整体的代码量,我们看到java文件有774个,行数有102846。分析的整体工作量相对来说还是比较大的。作为源码分析的第一篇文章,先来看一下seata的整体结构。下面依次说明每个模块的作用:all:里面只有一个pom文件,表示seata的依赖包bom:也是只有一个pom文件,all模块的pom文件指定了依赖了哪些包.
2020-08-21 18:05:16 902
原创 dubbo解析-RpcContext解析
本文基于dubbo 2.7.5版本代码dubbo提供了RpcContext上下文对象。我们可以使用该对象传递隐式参数,同时该对象也记录了一次调用的状态数据。先介绍如何传递隐式参数。RpcContext提供了attachments属性,客户端调用时,使用:RpcContext contentx=RpcContext.getContext();contentx.setAttachment("isTest","测试");//调用远程服务remoteService.service();服务端使.
2020-08-16 19:57:38 2978
原创 dubbo解析-回声测试实现原理
dubbo的回声测试功能作用是,当客户端正式访问服务端前通过回声测试,以了解服务是否可用或者网络是否畅通,而且还可以使用该功能对服务监控。dubbo的每个服务都自动实现了EchoService接口,使用方式也非常简单。
2020-08-08 21:36:22 855
原创 Seata解析-seata部署启动初体验
本文基于seata 1.3版本seata是由阿里巴巴开源的分布式事务框架,用于在分布式环境中保持事务一致性。它提供了四种事务模式:AT、TCC、SAGA 和 XA 事务模式,默认是AT模式。seata是客户端-服务器模式,每当客户端开启事务时,都向服务器注册事务,当事务结束通知服务器,服务器根据事务状态选择提交事务或者回滚。Seata中涉及到了三种角色:TC、TM和RM。TC是单独部署于服务端,RM和TM位于客户端。角色英文名中文名作用TCTransaction Coo.
2020-08-03 12:20:31 3787
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人