14.2 Spring Cloud Alibaba Seata 概述
上一节我们介绍了什么是分布式事务以及目前的一些设计方案存在的缺陷,本节我们介绍Spring Cloud Alibaba对分布式事务的解决方案——Spring Cloud Alibaba Seata。
14.2.1发展历程
2014 年,阿里中间件团队发布 TXC(Taobao Transaction Constructor),为集团内应用提供分布式事务服务。
2016 年,TXC 经过产品化改造,以 GTS(Global Transaction Service) 的身份登陆阿里云,成为当时业界唯一一款云上分布式事务产品。
2019 年起,基于 TXC 和 GTS 的技术积累,阿里中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback, FESCAR),和社区一起建设这个分布式事务解决方案。而后整合进入Spring Cloud Alibaba项目,并更名为Seata。
14.2.2 设计理念
首先,基于微服务单一职责设计理念,我们希望分布式事务的处理方案是无入侵业务的,所以从业务无侵入的 XA 方案来思考:是否可以在 XA 的基础上演进,解决掉 XA 方案面临的问题呢?
14.2.2.1 如何定义一个分布式事务?
首先,很自然的,可以把一个分布式事务理解成一个包含了若干分支事务的全局事务。全局事务的职责是协调其下管辖的分支事务达成一致,要么一起成功提交,要么一起失败回滚。此外,通常分支事务本身就是一个满足ACID的 本地事务。这是我们对分布式事务结构的基本认识,与 XA 是一致的。如图14-5: