1、Seata 在微服务一致性中的探索Seata 开源社区发起人目录 常见分布式一致性解决方案介绍 Seata 原理介绍 Seata 发展历程与 Roadmap 用户案例与推荐阅读分布式事务现状XA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(TM)和(局 部)资源管理器(RM)之间的接口。主流的关系型 数据库产品都是实现了XA接口的。XA接口是双向的系统接口,在事务管理器(TM)以及一个或多个资源管理器(RM)之 间形成通信桥梁。XA之所以需要引入事务管理器是因为,在分布 式系统中,从理论上讲两台机器理论上无法达 到一致的状态,需要引入一个单点进行协调。由全局
2、事务管理器管理和协调的事务,可以跨 越多个资源(如数据库或JMS队列)和进程。DTP模型-XA事务管理器(TM)资源管理器RM2应用/应用框架/应用服务器(AP)1.开始全局事务2.注册资源14.注册资源26.提交事务3.操作1.n5.操作1.n7.准备8.准备9.提交10.提交资源管理器RM1柔性事务-异步确保型是否能保证一致性?异步确保型本地事件表Service AService B业务事件恢复EnEi Ei+1En-1本地事务事件业务recoversendconsume异步确保型外部事件表事件恢复EnEi Ei+1En-1事件消息事件系统 confirm/cancelcheck stat
3、usService A业务Service B业务事件 half event doBiz 刚性事务:标准分布式事务(2PC/3PC)缺点:性能差、资源占用时间长、需要实现XA接口 柔性事务:异步确保型缺点:侵入性高、依赖可靠事件服务、实时性差、消费失败状态不可逆纯补偿性缺点:侵入性高、开发成本高、一致性差TCC缺点:侵入性高、开发成本高最大努力通知缺点:侵入性高、开发成本高、实时性差常用分布式事务-总结Seata 原理介绍What is Seata Seata:Simple Extensible Autonomous Transaction Architecture微服务架构下,易用、高效的分布
4、式事务解决方案 技术积累:愿景:像使用本地事务一样使用分布式事务TXCGTSXTSProblem VS SolutionDBStorageBusinessOrderAccountDBDBRPCSolution RPC:Dubbo、Spring Cloud、Motan 和 自定义 RPC 框架 资源:MySQL、Oracle、PostgreSQL、H2 和 RDS系列 等数据库MQ、NoSQLXA用户自定义类型资源Seata 原理介绍一个分布式(全局)事务是由若干本地(分支)事务组成。Seata 原理介绍Transaction Coordinator(TC):事务协调器,维护全局事务的运行状态,
5、驱动全局事务的提交或回滚。Transaction Manager(TM):控制全局事务的边界,负责开启一个全局事务,并最终负责发起全局提交或全局回滚。Resource Manager(RM):控制分支事务,负责分支事务的注册、状态汇报,并驱动分支(本地)事务的提交和回滚。Transaction ManagerTransactionCoordinatorResourceManagers(RM)ResourceManagers(RM)Resource ManagerSeata 原理介绍DBTCRMStorageBusinessTMRMOrderRMAccountDBDBDistributedTra
6、nsactionSeata 原理介绍MicroservicesDBRMDBRMMicroservicesDBRMDBRMMicroservicesDBRMDBRMTMTCBegin/Commit/RollbackRegister BranchXIDBranch Commit/RollbackSeata-ATLocalTransactionBusiness TableBusiness TableBusiness TableTCRMRDBMSthatSupportACIDTransactionBranch Rollba