# 分布式事务 Seata
# 官网 (opens new window)
# Github 地址 (opens new window)
对于分布式事务,通俗地说就是,一次操作由若干分支操作组成,这些分支操作分属不同应用,分布在不同服务器上。分布式事务需要保证这些分支操作要么全部成功,要么全部失败。
能够实现分布式事务的解决方案很多,但阿里Seata则是一个非常成熟的分布式事务产品,Spring Cloud Alibaba推荐使用Seata作为分布式事务解决方案。
# Seata术语
TC (Transaction Coordinator) - 事务协调者
维护全局和分支事务的状态,驱动全局事务提交或回滚。
TM (Transaction Manager) - 事务管理器
定义全局事务的范围:开始全局事务、提交或回滚全局事务。
RM (Resource Manager) - 资源管理器
管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
# Seata 分类
Seata Server需要对全局事务与分支事务进行存储,以便对它们进行管理。其存储模式目前支持三种:file、db、redis。
- file模式:会将相关数据存储在本地文件中,一般用于Seata Server的单机测试。
- db模式:会将相关数据存储在数据库中,一般用于生产环境下的Seata Server集群部署。生产环境下使用最多的模式。
- redis模式:会将相关数据存储在redis中,一般用于生产环境下的Seata Server集群部署。性能略高于db模式,如果对性能要求较高,可选择redis模式。