跳转至

第一章:Seata 简介

什么是 Seata?

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

┌─────────────────────────────────────────────────────────────┐
│                    Seata 架构                               │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                   TM (Transaction Manager)           │   │
│  │  ┌───────────────────────────────────────────────┐ │   │
│  │  │  • 事务发起者                                  │ │   │
│  │  │  • 开启全局事务                                │ │   │
│  │  │  • 提交/回滚全局事务                          │ │   │
│  │  └───────────────────────────────────────────────┘ │   │
│  └─────────────────────────────────────────────────────┘   │
│                           │                                 │
│                           ▼                                 │
│  ┌─────────────────────────────────────────────────────┐   │
│  │               TC (Transaction Coordinator)           │   │
│  │  ┌───────────────────────────────────────────────┐ │   │
│  │  │  • 事务协调器                                  │ │   │
│  │  │  • 维护全局事务状态                            │ │   │
│  │  │  • 协调 RM 提交/回滚                          │ │   │
│  │  └───────────────────────────────────────────────┘ │   │
│  └─────────────────────────────────────────────────────┘   │
│                           │                                 │
│         ┌─────────────────┼─────────────────┐             │
│         ▼                 ▼                 ▼             │
│  ┌───────────┐     ┌───────────┐     ┌───────────┐       │
│  │ RM        │     │ RM        │     │ RM        │       │
│  │ (DB 1)    │     │ (DB 2)    │     │ (DB 3)    │       │
│  │           │     │           │     │           │       │
│  │ 资源管理器 │     │ 资源管理器 │     │ 资源管理器 │       │
│  └───────────┘     └───────────┘     └───────────┘       │
│                                                             │
└─────────────────────────────────────────────────────────────┘

核心角色

TC (Transaction Coordinator)

事务协调器:
- 维护全局事务状态
- 协调 RM 提交/回滚
- 持久化事务日志

TM (Transaction Manager)

事务管理器:
- 事务发起者
- 开启全局事务
- 提交/回滚全局事务

RM (Resource Manager)

资源管理器:
- 管理分支事务
- 注册分支事务
- 汇报事务状态

事务模式

AT 模式

AT 模式(最常用):
- 无侵入式
- 自动补偿
- 基于 undo_log
- 适用于大多数场景

TCC 模式

TCC 模式:
- Try-Confirm-Cancel
- 业务侵入式
- 灵活性高
- 适用于金融场景

Saga 模式

Saga 模式:
- 长事务解决方案
- 状态机编排
- 补偿机制
- 适用于复杂业务流程

XA 模式

XA 模式:
- 标准 XA 协议
- 强一致性
- 性能较低
- 适用于传统数据库

与其他方案对比

特性 Seata RocketMQ 事务消息 本地消息表
一致性 强一致 最终一致 最终一致
性能
侵入性 低(AT)
复杂度

适用场景

场景 推荐模式
普通业务 AT 模式
金融业务 TCC 模式
长流程业务 Saga 模式
传统数据库 XA 模式

小结

Seata 基础概念:

  • 架构:TM → TC → RM
  • 核心角色:TC、TM、RM
  • 事务模式:AT、TCC、Saga、XA
  • 对比:强一致、高性能、低侵入

下一章我们将学习核心概念。