1. 分布式事务画布概述

1.1 分布式事务画布的定义

分布式事务画布(Distributed Transaction Canvas)是一套结构化、可视化的设计框架,用于在微服务架构中系统性地描述、分析和实现跨服务的数据一致性方案。它将分布式事务拆解为参与者、协调者、资源、补偿策略、一致性级别等核心要素,并以统一的接口契约形式呈现。

画布的核心思想是:将分布式事务的设计从“代码实现”提升到“模型设计”层面,让架构师和开发者在编码之前就能清晰定义事务边界、故障处理路径和最终一致性保证。

关键定义: 分布式事务画布 = 事务要素模型 + 接口契约 + 一致性策略矩阵。它不是具体的中间件,而是一种设计方法论与接口规范。
分布式事务画布核心要素结构图 分布式事务画布核心要素结构 分布式事务画布 参与者 协调者 资源 补偿策略 一致性级别 接口契约 画布将分布式事务拆解为六大要素,以接口契约驱动设计

1.2 核心价值

分布式事务画布为微服务团队带来以下四个核心价值:

价值维度 说明 典型收益
设计可视化 用统一画布呈现事务全貌,避免“只见代码不见架构” 降低沟通成本,提升设计评审效率
接口标准化 定义 Go 接口契约,规范参与者与协调者的交互协议 消除服务间耦合,提升可替换性
故障可预期 明确补偿策略和一致性级别,让异常路径有据可循 减少线上故障,提升系统韧性
演进可追溯 画布版本化,支持事务方案的持续演进和审计 便于技术债务管理和架构治理
实践建议: 画布的核心价值不在于“一次画对”,而在于“持续对齐”。每次服务拆分或一致性需求变更时,都应更新画布并重新审视接口契约。

1.3 在微服务架构中的定位

在微服务架构中,分布式事务画布处于“业务层”与“基础设施层”之间的设计层。它不直接运行事务,而是为事务实现提供蓝图和契约约束。

画布在微服务架构中的三层定位如下:

  • 业务编排层: 画布定义事务的参与者(服务)和业务操作顺序,与业务逻辑紧密相关。
  • 一致性协调层: 画布指定协调者角色和一致性级别(如最终一致性、强一致性),决定事务的协调策略。
  • 资源适配层: 画布描述资源(数据库、消息队列、缓存)的参与方式和补偿操作,与基础设施交互。
分布式事务画布在微服务架构中的定位 分布式事务画布在微服务架构中的定位 业务编排层 服务 A → 服务 B → 服务 C 的业务操作顺序与事务边界 一致性协调层 协调者、一致性级别(最终/强)、补偿策略定义 资源适配层 数据库、消息队列、缓存等资源的参与方式与补偿操作 分布式事务画布 Go 接口契约 画布横跨三层,通过 Go 接口契约实现层间解耦

1.4 画布与现有分布式事务方案的对比

分布式事务画布不是要替代现有方案,而是为它们提供统一的设计视图和接口规范。下表展示了画布与主流方案的定位差异:

方案 定位 与画布的关系
XA / JTA 数据库层强一致性协议 画布可将其作为“资源适配层”的一种实现
TCC(Try-Confirm-Cancel) 业务层补偿模式 画布为其提供参与者接口契约和补偿策略模板
Saga 长事务编排模式 画布定义 Saga 的步骤、补偿和协调者接口
消息事务(RocketMQ) 消息队列最终一致性 画布将其资源参与方式抽象为统一资源接口
分布式事务画布 设计层方法论 + 接口契约 — 本课程核心 —
常见误区: 画布不是中间件,不提供运行时事务协调能力。它的输出是 Go 接口定义 + 设计文档,具体事务执行仍依赖 TCC、Saga 等运行时框架。

1.5 画布的核心产出物

完成分布式事务画布设计后,团队应获得以下三类核心产出物:

  1. 事务要素模型图: 可视化展示参与者、协调者、资源、补偿策略、一致性级别及其关系。
  2. Go 接口契约文件: 定义参与者接口(Participant)、协调者接口(Coordinator)、资源接口(Resource)等核心类型。
  3. 一致性策略矩阵: 表格化描述不同故障场景下的一致性保证级别和补偿操作。