一个高性能、易用的分布式事务解决方案,适用于微服务架构。
假设一个传统的单体应用。它的业务由三个模块组成,它们使用同一个本地数据源。
当然,本地事务可以保证数据的一致性。

微服务架构已经发生了变化。上面提到的三个模块被设计为基于三个不同数据源的三个服务(模式:每个服务一个数据库)。每个服务内部的数据一致性由本地事务自然保证。
但是整个业务逻辑范围呢?

Seata 正是针对上述问题提出的解决方案。

首先,如何定义分布式事务?
我们说,分布式事务是由一批分支事务组成的全局事务,而通常情况下,分支事务就是本地事务。

Seata Framework 中有三个角色:

Seata 管理的分布式事务的典型生命周期:

更多原理和设计细节,请访问 Seata wiki 页面。
XTS:扩展事务服务。蚂蚁金服中间件团队自 2007 年起开发了分布式事务中间件,该中间件在蚂蚁金服得到广泛应用,解决了跨数据库和服务的数据一致性问题。
DTX:扩展分布式事务服务。自 2013 年起,XTS 以 DTX 的名称在蚂蚁金服云上正式发布。
根据场景,选择以下两个依赖项之一:org.apache.seata:seata-all 或 org.apache.seata:seata-spring-boot-starter。
<properties>
<seata.version>2.5.0</seata.version>
</properties>
<dependencies>
<!--dependencies for non-SpringBoot application framework-->
<dependency>
<groupId>org.apache.seata</groupId>
<artifactId>seata-all</artifactId>
<version>${seata.version}</version>
</dependency>
<!--If your project base on `Spring Boot`, you can directly use the following dependencies-->
<!--Notice: `seata-spring-boot-starter` has already included `seata-all` dependency-->
<dependency>
<groupId>org.apache.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
<version>${seata.version}</version>
</dependency>
</dependencies>
您可以在 Seata 官方网站查看完整文档:Seata 网站页面。
Seata 采用 Apache 2.0 许可证。详情请参阅 LICENSE 文件。