成都铁路局贵阳建设指挥部网站,微信公众平台高级开发,网站制作要钱吗,网站活动策划怎么做分布式事务seata 角色组成角色指责AT模式TCC模式 角色组成 TC#xff1a;事务协调者#xff0c;维护全局和分支事务的状态#xff0c;驱动全局事务提交或回滚。TM#xff1a;事务管理者#xff0c;定义全局事务的范围#xff1a;开始全局事务、提交或回滚全局事务。RM事务协调者维护全局和分支事务的状态驱动全局事务提交或回滚。TM事务管理者定义全局事务的范围开始全局事务、提交或回滚全局事务。RM资源管理器管理分支事务处理的资源与TC交谈以注册分支事务和报告分支事务的状态并驱动分支事务提交或回滚。 TC为单独部署的Server服务端TM和RM为嵌入到应用中的Client客户端。
角色指责
TM请求TC开启一个全局事务。TC会生成一个XID作为该全局事务的编号。XID会在微服务的调用链路中传播保证将多个微服务的子事务关联在一起。RM请求TC将本地事务注册为全局事务的分支事务通过全局事务的XID进行关联。TM通知TC告诉XID对应的全局事务是进行提交还是回滚。TC驱动RM们将XID对应的自己的本地事务进行提交还是回滚。
AT模式
两阶段提交 一阶段生成undolog前置镜像、后置镜像拿到本地锁做业务数据修改拿到全局锁提交本地事务。如果未拿到全局锁超时失败将回滚本地事务释放本地锁。 二阶段 成功异步操作删除undolog释放全局锁。 失败查找undolog驱动RM回滚本地事务释放全局锁。
TCC模式 TCC模式与AT模式比更灵活不需要依赖数据库。但是需要手动实现try、commit、cancel3个方法。TCC框架还存在3个问题空回滚、幂等、悬挂。使用useTCCFence参数增加日志表记录全局事务状态可以解决。