在微服务架构下,分布式事务一直是痛点和难点。Seata是阿里巴巴开源的分布式事务中间件,致力于以高效且对业务无侵入的方式,解决在微服务场景下面临的分布式事务问题。 本书作者是阿里巴巴GTS创始人和Seata作者,结合其多年在分布式事务领域设计、研发和应用的经验,深入浅出地阐述了分布式事务技术基础、Seata AT模式、TCC模式、RPC设计、事务协调器技术的原理,并给出了两个开发实例(AT模式和TCC模式)。 本书可以为微服务系统架构师、研发人员解决核心业务实际问题提供思路,也适合分布式技术相关专业的学生阅读,帮助他们建立分布式事务的知识框架。
姜宇 阿里分布式事务 GTS 创始人,开源软件 SEATA 作者。现任职于华为云计算,20 级技术专家。之前任职于阿里中间件,高级技术专家。之前任职于Oracle Tuxedo,主任工程师。个人拥有26个发明专利。冯艳娜 现任教于北京联合大学师范学院,副教授。主要研究方向是智能信息技术,主持参加10余项市教委及校级科研和教研项目。荣获北京市师德先锋荣誉称号。
第1篇 分布式事务技术基础
★第1章 事务与分布式事务
1.1 事务及ACID四大特性
1.1.1 原子性(Atomicity)
1.1.2 一致性(Consistency)
1.1.3 隔离性(Isolation)
1.1.4 持久性(Durability)
1.2 XA两阶段提交协议
1.2.1 两阶段提交协议的执行过程
1.2.2 两阶段提交协议的缺点
1.3 分布式基础之CAP和BASE理论
1.3.1 CAP理论
1.3.2 BASE理论
1.4 TCC柔性事务
1.5 基于消息的终一致性
1.5.1 问题示例
1.5.2 解决方案
第2篇 Seata原理详解
★第2章 Seata简介
2.1 Seata发展历史
2.2 Seata总体架构
2.2.1 模块组成
2.2.2 逻辑结构
2.3 Seata 事务模式
2.3.1 AT模式
2.3.2 TCC模式
2.3.3 Saga模式
2.3.4 XA模式
★第3章 Seata AT模式
3.1 AT模式的基本原理
3.1.1 工作流程示例
3.1.2 事务日志表
3.1.3 事务日志管理器
3.2 Seata的数据源代理
3.2.1 数据源代理类
3.2.2 资源管理器
3.2.3 数据库连接代理
3.2.4 StatementProxy 与PreparedStatementProxy
3.3 AT模式的两阶段提交
3.3.1 一阶段处理
3.3.2 二阶段的提交处理
3.3.3 二阶段的回滚处理
★第4章 Seata TCC模式
4.1 TCC模式介绍
4.1.1 TCC模式与 AT模式对比
4.1.2 TCC模式的设计方法
4.2 TCC模式的实现原理
4.2.1 TCC模式的注解
4.2.2 TCC模式的资源注册
4.2.3 TCC模式的事务发起
★第5章 Seata RPC设计
5.1 网络通信
5.2 事务消息类型
5.3 消息序列化
5.3.1 资源管理器注册消息的编/解码
5.3.2 分支事务注册消息的编/解码
5.3.3 合并消息的编/解码
第6章 Seata事务协调器
6.1 服务端的启动流程
6.2 默认的事务协调器
6.3 事务的消息处理
6.3.1 全局事务开始事件GlobalBeginRequest
的处理过程
6.3.2 全局事务提交事件GlobalCommitRequest
的处理过程
6.4 事务的二阶段推进
6.5 全局锁的原理
6.5.1 文件锁管理器的添加全局锁
6.5.2 文件锁管理器的释放全局锁
第3篇 Seata开发实战
★第7章 Seata AT模式开发实例
7.1 AT模式样例简介
7.2 准备工作
7.3 运行样例工程
7.4 验证AT模式分布式事务
★第8章 Seata TCC模式开发实例
8.1 TCC模式样例简介
8.1.1 扣钱业务的TCC模式实现
8.1.2 加钱业务的TCC模式实现
8.1.3 转账业务的全局事务
8.2 运行样例工程
8.2.1 测试全局事务提交
8.2.2 测试全局事务回滚
8.3 缺陷分析