Seata在微服务一致性中的探索季敏Seata开源社区发起人自我介绍季敏(GitHubIDslievrly),Seata开源项目负责人。加入阿里巴巴中间件后主要负责TXC、GTS和Seata项目的研发,推动了项目在集团内业务的落地,实现了专有云和阿里云的对外技术输出及Seata的开源。长期从事于分布式中间件的架构设计与开发工作,在分布式事务领域有着深厚的技术积累。目录�常见分布式一致性解决方案介绍�Seata原理介绍�Seata发展历程与Roadmap�用户案例与推荐阅读分布式事务现状XA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(TM)和(局部)资源管理器(RM)之间的接口。主流的关系型数据库产品都是实现了XA接口的。XA接口是双向的系统接口,在事务管理器(TM)以及一个或多个资源管理器(RM)之间形成通信桥梁。XA之所以需要引入事务管理器是因为,在分布式系统中,从理论上讲两台机器理论上无法达到一致的状态,需要引入一个单点进行协调。由全局事务管理器管理和协调的事务,可以跨越多个资源(如数据库或JMS队列)和进程。DTP模型--XA事务管理器(TM)资源管理器RM2应用/应用框架/应用服务器(AP)1.开始全局事务2.注册资源14.注册资源26.提交事务3.操作1..n5.操作1..n7.准备8.准备9.提交10.提交资源管理器RM1柔性事务-异步确保型是否能保证一致性?异步确保型—本地事件表ServiceAServiceB业务事件恢复EnEiEi+1En-1……本地事务事件业务recoversendconsume异步确保型—外部事件表事件恢复EnEiEi+1En-1……事件消息事件系统③confirm/cancelcheckstatusServiceA业务ServiceB业务事件①halfevent②doBiz�刚性事务:标准分布式事务(2PC/3PC)缺点:性能差、资源占用时间长、需要实现XA接口�柔性事务:异步确保型缺点:侵入性高、依赖可靠事件服务、实时性差、消费失败状态不可逆纯补偿性缺点:侵入性高、开发成本高、一致性差TCC缺点:侵入性高、开发成本高最大努力通知缺点:侵入性高、开发成本高、实时性差常用分布式事务-总结Seata原理介绍WhatisSeata�Seata:SimpleExtensibleAutonomousTransactionArchitecture微服务架构下,易用、高效的分布式事务解决方案�技术积累:�愿景:像使用本地事务一样使用分布式事务TXCGTSXTSProblemVSSolutionDBStorageBusinessOrderAccountDBDBRPCSolution�RPC:Dubbo、SpringCloud、Motan和自定义RPC框架�资源:MySQL、Oracle、PostgreSQL、H2和RDS系列等数据库MQ、NoSQLXA用户自定义类型资源Seata...