目录
一、基本架构
- Seata是 2019 年 1 月份蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案。
- 致力于提供高性能和简单易用的分布式事务服务,为用户打造一站式的分布式解决方案。
官网地址:Seata | Seata,其中的文档、播客中提供了大量的使用说明、源码分析。
1、Seata事务中的三个重要角色
(1) **TC (Transaction Coordinator) -**事务协调者
维护全局和分支事务的状态,协调全局事务提交或回滚。
(2) **TM (Transaction Manager) -**事务管理器
定义全局事务的范围、开始全局事务、提交或回滚全局事务。
(3) **RM (Resource Manager) -**资源管理器
管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
2、四种不同的分布式事务解决方案:
- XA模式:强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入
- TCC模式:最终一致的分阶段事务模式,有业务侵入
- AT模式:最终一致的分阶段事务模式,无业务侵入,也是Seata的默认模式
- SAGA模式:长事务模式,有业务侵入
二、TC的部署
三、微服务集成Seata
1、引入Seata相关依赖
<!-- seata依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-seata</artifactId>
<exclusions>
<exclusion>
<groupId>io.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
</dependency>
2、配置yml文件
seata:
registry:
type: nacos
nacos:
server-prot: 127.0.0.1:8848
namespace: ""
group: SEATA_GROUP
application: seata-tc-server
username: nacos
password: nacos
tx-service-group: seata-demo
service:
vgroup-mapping:
seata-demo: default