1. 课程导论:分布式事务与OAuth2.0集成全景图
1.1 为什么需要集成分布式事务与OAuth2.0?
现代微服务架构中,一个业务请求往往需要跨多个服务、多个数据库实例协同完成。此时,分布式事务保证数据最终一致性,而OAuth2.0保证跨服务调用的安全权限。两者看似独立,但在实际落地中必须深度集成:
- 事务上下文传播:分布式事务的全局ID(如Saga ID、TCC ID)需要安全地透传到下游服务,OAuth2.0的JWT Token是天然的载体。
- 权限与补偿:事务补偿操作(如回滚、冲正)必须校验调用方是否具备补偿权限,防止恶意回滚。
- 资源隔离:不同租户或用户的事务数据,需通过OAuth2.0的Scope进行隔离,避免数据越权。
核心观点:分布式事务解决“数据一致性”,OAuth2.0解决“谁可以做什么”。两者集成后,才能构建既一致又安全的分布式系统。
1.2 分布式事务与OAuth2.0集成全景图
下图展示了分布式事务与OAuth2.0在微服务架构中的集成层次与关键交互点:
1.3 学习目标
完成本章及后续课程后,你将能够:
| 序号 | 学习目标 | 对应能力层级 |
|---|---|---|
| 1 | 理解分布式事务(Saga、TCC、2PC)的核心原理与适用场景 | 理解 |
| 2 | 掌握OAuth2.0四种授权模式及JWT Token结构 | 掌握 |
| 3 | 设计分布式事务与OAuth2.0的集成架构,包括Token传播、Scope隔离 | 应用 |
| 4 | 使用事件风暴画布对分布式事务进行建模,并标注安全权限 | 分析 |
| 5 | 实现一个带OAuth2.0保护的Saga编排示例 | 综合 |
1.4 前置知识清单
为了确保学习效果,建议你提前熟悉以下内容:
提示:如果你对某项前置知识不熟悉,建议先花30分钟快速回顾相关基础。
| 知识领域 | 具体要求 | 推荐资源 |
|---|---|---|
| 微服务架构 | 了解服务拆分、REST/gRPC通信、服务注册与发现 | 《微服务设计》第1-3章 |
| Spring Boot基础 | 能编写简单的REST Controller、配置数据源 | Spring官方Quick Start |
| 数据库事务 | 理解ACID、本地事务、隔离级别 | MySQL官方文档-事务章节 |
| HTTP与JWT | 了解HTTP Header、Base64编码、JSON Web Token结构 | jwt.io 调试器 |
| 事件驱动基础 | 了解消息队列(Kafka/RabbitMQ)的基本概念 | 《事件驱动架构》第2章 |
1.5 课程路线图
本课程共30章,分为四个阶段:
1.6 关键概念速查表
在进入后续章节前,先统一以下核心术语的定义:
| 术语 | 缩写 | 定义 |
|---|---|---|
| 分布式事务 | DTx | 跨多个独立数据库或服务的原子性操作 |
| Saga | — | 长事务模式,通过一系列本地事务+补偿事务实现最终一致性 |
| TCC | TCC | Try-Confirm-Cancel,预留资源后确认或取消 |
| OAuth2.0 | — | 授权框架,允许第三方应用获取有限的资源访问权限 |
| JWT | JWT | JSON Web Token,自包含的Token格式,用于传递声明 |
| Scope | — | 权限范围,定义Token可以访问的资源与操作 |
| 事件风暴 | ES | 领域驱动设计中的协作建模方法,通过事件识别聚合与边界 |
注意:本课程中所有分布式事务示例均基于“最终一致性”模型,不涉及强一致性分布式事务(如Percolator)。如果你需要强一致性方案,请参考Google Spanner相关文档。