第一章:Seata 简介¶
什么是 Seata?¶
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
┌─────────────────────────────────────────────────────────────┐
│ Seata 架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ TM (Transaction Manager) │ │
│ │ ┌───────────────────────────────────────────────┐ │ │
│ │ │ • 事务发起者 │ │ │
│ │ │ • 开启全局事务 │ │ │
│ │ │ • 提交/回滚全局事务 │ │ │
│ │ └───────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ TC (Transaction Coordinator) │ │
│ │ ┌───────────────────────────────────────────────┐ │ │
│ │ │ • 事务协调器 │ │ │
│ │ │ • 维护全局事务状态 │ │ │
│ │ │ • 协调 RM 提交/回滚 │ │ │
│ │ └───────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────────┼─────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ RM │ │ RM │ │ RM │ │
│ │ (DB 1) │ │ (DB 2) │ │ (DB 3) │ │
│ │ │ │ │ │ │ │
│ │ 资源管理器 │ │ 资源管理器 │ │ 资源管理器 │ │
│ └───────────┘ └───────────┘ └───────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
核心角色¶
TC (Transaction Coordinator)¶
TM (Transaction Manager)¶
RM (Resource Manager)¶
事务模式¶
AT 模式¶
TCC 模式¶
Saga 模式¶
XA 模式¶
与其他方案对比¶
| 特性 | Seata | RocketMQ 事务消息 | 本地消息表 |
|---|---|---|---|
| 一致性 | 强一致 | 最终一致 | 最终一致 |
| 性能 | 高 | 高 | 中 |
| 侵入性 | 低(AT) | 中 | 高 |
| 复杂度 | 低 | 中 | 高 |
适用场景¶
| 场景 | 推荐模式 |
|---|---|
| 普通业务 | AT 模式 |
| 金融业务 | TCC 模式 |
| 长流程业务 | Saga 模式 |
| 传统数据库 | XA 模式 |
小结¶
Seata 基础概念:
- 架构:TM → TC → RM
- 核心角色:TC、TM、RM
- 事务模式:AT、TCC、Saga、XA
- 对比:强一致、高性能、低侵入
下一章我们将学习核心概念。