南充阆中网站建设,养殖场网站模板,微信小程序怎么删除,鞍山SEO网站推广公司介绍#xff1a;
Seata的设计目标是对这个业务无侵入#xff0c;因此从业务无侵入的2PC方案开始的#xff0c;在传统的2PC的基础上演进的。它把一个分布式事务拆分理解成一个包含了若干分支事务的全局事务。全局事务的职责是协调其下管辖的分支事务达成一致性#xff0c;要…
介绍
Seata的设计目标是对这个业务无侵入因此从业务无侵入的2PC方案开始的在传统的2PC的基础上演进的。它把一个分布式事务拆分理解成一个包含了若干分支事务的全局事务。全局事务的职责是协调其下管辖的分支事务达成一致性要么一起成功提交要么一起失败回滚。此外通常分支事务本身就是一个关系数据库的本地事务。 Seata的三个重要组件 TCTransaction Coordinator 事务协调器管理全局的分支事务的状态用于全局性事务的提交和回滚。 TMTransaction Manager 事务管理器用于开启、提交或者回滚全局事务。 RMResource Manager 资源管理器用于分支事务上的资源管理向TC注册分支事务上报分支事务的状态接受TC的命令来提交或者回滚分支事务。 Seata的执行流程如下 1.A服务的TM向TC申请开启一个全局事务TC就会创建一个全局事务并返回一个唯一的XID 2.A服务的RM向TC注册分支事务并及其纳入XID对应全局事务的管辖 3.A服务执行分支事务向数据库进行操作 4.A服务开启远程调用B服务并将其纳入XID对应的全局事务的管辖 5.B服务的RM向TC注册分支事务并将其纳入XID对应的全局事务的管辖中 6.B服务执行分支事务向数据库进行操作 7.全局事务调用链处理完毕TM根据无异常向TC发起事务的提交或者回滚 8.TC协调其管辖之下的所有分支事务决定是否回滚
Seata实现2PC与传统2PC的差别 架构层次方面传统2PC方案的 RM 实际上是在数据库层RM本质上就是数据库自身通过XA协议实现而 Seata的RM是以jar包的形式作为中间件层部署在应用程序这一侧的。 两阶段提交方面传统2PC无论第二阶段的决议是commit还是rollback事务性资源的锁都要保持到Phase2完成才释放。而Seata的做法是在Phase1 就将本地事务提交这样就可以省去Phase2 持锁的时间整体提高效率。