RM:资源管理器,可以理解为事务的参与者,一般情况下是指一个数据库的实例(MySql),通过资源管理器对该数据库进行控制,资源管理器控制着分支事务 TM:事务管理器,负责协调和管理事务,事务管理器控制着全局事务,管理实务生命周期,并协调各个RM。全局事务是指分布式事务处理环境中,需要操作多个数据库共同完成一个工作,这个...
SeataTM向TC申请开启一个全局事务,全局事务创建成功并生成一个全局唯一的XID; XID 在微服务调用链路的上下文中传播;RM向TC注册分支事务,将其纳入 XID 对应全局事务的管辖;TM向TC发起针对 XID的全局提交或回滚决议;TC调度 XID 下管辖的全部分支事务完成提交或回滚请求。
20:这个handler.onRequest,handler在初始化RMClient中进行设置,所以该handler对象即DefaultRMHandler,随后调用过程为DefaultRMHandler父类 AbstractRMHandler.onRequest->DefaultRMHandler.handle->RMHandlerAT父类AbstractRMHandler.handle->AbstractRMHandler.doBranchRollback最终调用如下方法 21:getResourceManager()为模版方法...
8、TC记录了全局事务下的每个分支事务,TC收到全局事务的结果后,如果结果成功,则通知RM成功,RM收到通知后清理之前在数据库中保存的回滚记录,如果失败了,则RM要查询出之前在数据库保存的回滚记录,对之前的SQL操作进行回滚。 因为TM、RM、TC之间的交互都是通过网络完成的,很容易出现网络断开的情况,因此TC提供了四个...
TM与集群通讯和RM基本是一致。 TM启动时,也是根据事务分组从注册中心找到集群机器列表,然后与每台机器建立连接,并向其注册TM信息。 启动后的通讯也是根据负载均衡策略与其中一台机器通讯。而且对于同一个全局事务,可能TM访问的机器前后是不同的。TM和RM与集群通讯使用的代码都是一样的。
8、TC记录了全局事务下的每个分支事务,TC收到全局事务的结果后,如果结果成功,则通知RM成功,RM收到通知后清理之前在数据库中保存的回滚记录,如果失败了,则RM要查询出之前在数据库保存的回滚记录,对之前的SQL操作进行回滚。 因为TM、RM、TC之间的交互都是通过网络完成的,很容易出现网络断开的情况,因此TC提供了四个...
TM与集群通讯和RM基本是一致。 TM启动时,也是根据事务分组从注册中心找到集群机器列表,然后与每台机器建立连接,并向其注册TM信息。 启动后的通讯也是根据负载均衡策略与其中一台机器通讯。而且对于同一个全局事务,可能TM访问的机器前后是不同的。TM和RM与集群通讯使用的代码都是一样的。