前言
广度与深度兼备、理论与实战兼顾的《分布式事务原理与实战》从以下5个维度全面深入的讲解了分布式事务:
-
基础知识维度:首先全面介绍了事务和分布式事务的概念和基础知识,然后详细讲解了MySQL事务和Spring事务的实现原理。
-
解决方案维度:详细介绍了分布式事务的各种解决方案,包括强一致 性分布式事务解决方案和最终一致性分布式事务解决方案。
-
原理分析维度:详细讲解了分布式事务的原理,包括XA强一致性分 布式事务、TCC分布式事务、可靠消息最终一致性分布式事务和最大努力 通知型分布式事务的原理。
-
源码实现维度:深入分析了Atomikos、Narayana框架实现XA强一致性 分布式事务解决方案的源码,以及Dromara开源社区的Hmily分布式事务框 架实现TCC分布式事务的源码。
-
工程实践维度:通过多个在生产环境中经历了高并发、大流量考验的 综合案例,讲解了XA强一致性分布式事务、TCC分布式事务、可靠消息 最终一致性分布式事务和最大努力通知型分布式事务的工程实践方法。
咱们一起来看看大致内容:
目录
第一部分 分布式事务基础
第1章 事务的基本概念
本章主要介绍事务的基础知识,包括事务的特性、事务的类型、本 地事务的概念、MySQL事务基础以及最佳实践等。
第2章 MySQL事务的实现原理
本章主要介绍了MySQL事务的实现原理,对Redo Log、Undo Log和BinLog进行了简单的介绍,然后介绍了MySQL事务的流程,包括MySQL事务的执行流程和MySQL事务的恢复流程,最后简单介绍了MySQL的XA事务。
第3章 Spring事务的实现原理
本章简单介绍了Spring的事务原理以及事务的三大接口:PlatformTransactionManager、TransactionDefinition和TransactionStatus。接着介绍了Spring的事务隔离级别和传播机制。然后以案例的形式详细阐述了Spring的事务嵌套。最后列举了常见的几种Spring事务失效的场景。
第4章 分布式事务的基本概念
本章首先简单介绍了分布式系统架构的产生背景、目标和原则,接着 介绍了分布式系统架构的演进历程,包括单体应用架构、垂直应用架构、 分布式架构、SOA架构和微服务架构,随后介绍了分布式事务产生的场 景,最后介绍了数据的一致性问题。
第5章 分布式事务的理论知识
本章的内容比较简单,介绍了分布式事务中的两大基本理论:CAP理 论和Base理论。
第二部分 分布式事务解决方案
第6章 强一致性分布式事务解决方案
本章主要介绍了强一致性分布式事务的解决方案,包括强一致性分布 式事务概述、DTP模型、2PC模型和3PC模型,并详细描述了各个模型的 执行流程,同时对2PC模型和3PC模型存在的问题进行了简单的介绍。
第7章 最终一致性分布式事务解决方案
本章主要对分布式事务解决方案中的最终一致性分布式事务解决方案 进行了简单的介绍,然后介绍了最终一致性分布式事务解决方案的服务模 式,接着介绍了分布式事务中三大经典的最终一致性解决方案,分别为TCC解决方案、可靠消息最终一致性解决方案和最大努力通知型解决方案。
第三部分 分布式事务原理
第8章 XA强一致性分布式事务原理
本章首先介绍了DTP模型、XA规范以及MySQL作为资源管理器对XA规范的支持,接着对XA规范的缺陷进行了一些思考并提出了相关的解决方案,最后简单介绍了目前主流的XA开源解决方案。
第9章 TCC分布式事务原理
本章主要对TCC分布式事务的原理进行了简单的介绍。首先介绍了TCC分布式事务的核心思想,接下来介绍了TCC分布式事务的实现原理, 包括TCC分布式事务的核心组成部分和TCC分布式事务的核心原理,随后 对TCC分布式事务的核心流程进行了详细的介绍,最后简单介绍了实现TCC分布式事务的关键技术
第10章 可靠消息最终一致性分布式事务原理
本章主要介绍了可靠消息最终一致性的原理,首先介绍了可靠消息最 终一致性的基本原理。接下来分别介绍了可靠消息最终一致性的三种实现原理,分别为本地消息表,独立消息服务和RocketMQ事务消息。随后介绍了消息发送的一致性和消息接收的一致性。最后简单介绍了消息的可靠性。只有满足了本章所描述的全部内容,才能实现一个完整的可靠消息最终一致性分布式事务解决方案。
第11章 最大努力通知型分布式事务原理
本章的内容比较简单,主要对最大努力通知型分布式事务的原理进行了简单的介绍。首先总结了最大努力通知型分布式事务的使用场景和方案特点。然后简单介绍了最大努力型分布式事务的基本原理和异常情况的处理方式。
第四部分 分布式事务源码与实战
第12章 XA强一致性分布式事务解决方案源码解析
本章的内容比较简单,主要对最大努力通知型分布式事务的原理进行 了简单的介绍。首先总结了最大努力通知型分布式事务的使用场景和方案 特点。然后简单介绍了最大努力型分布式事务的基本原理和异常情况的处理方式。
第13章 Hmily-TCC分布式事务解决方案源码解析
本章首先搭建了Hmily-TCC分布式事务场景,以便于进行源码调试。 然后分析了Hmily框架的整体初始化流程,尤其是加载配置,初始化事务 日志存储。接下来根据搭建的环境,模拟了一次TCC分布式事务的请求, 并根据请求完成了Hmily-TCC框架中Try、Confirm、Cancel阶段的源码解 析。接着讲解了Hmily如何整合目前主流的RPC框架,支持分布式事务。 最后讲解了Hmily框架中TCC场景的事务恢复原理与逻辑。
第14章 XA强一致性分布式事务实战
本章主要使用Atomikos框架实现了XA强一致性分布式事务。首先, 对业务的场景和程序模块进行了简单的说明。然后,简单介绍了数据库表设计。接着,详细介绍了整个项目的实现过程。最后对项目实现的效果进行了测试。
第15章 TCC分布式事务实战
本章主要基于Hmily框架实现了模拟跨行转账业务的TCC分布式事务 场景。首先对业务场景和程序模块进行了简单的说明。接下来,对数据库 表结构进行了简单的介绍。随后详细描述了项目的公共模块、转出银行微 服务和转入银行微服务的实现过程。最后,对整个TCC分布式事务场景进 行了简单的测试。
第16章 可靠消息最终一致性分布式事务实战
本章实现了一个相对比较完整的基于可靠消息最终一致性分布式事务 案例,首先对案例的业务场景和案例的各个程序模块进行了简单的说明, 因为案例是基于RocketMQ实现的,所以对RocketMQ的环境搭建进行了介 绍。随后对案例的数据库设计、订单微服务的实现和库存微服务的实现进 行了简单的介绍。最后对案例程序进行了测试。
第17章 最大努力通知型分布式事务实战
本章主要以经典的账户充值业务场景为例,实现了一个完整的最大努 力通知型分布式事务案例。首先对业务场景和程序模块进行了简单的说 明,接下来简单说明了数据库表设计,随后重点实现了账户微服务和充值 微服务,最后对案例程序进行了测试。
适合此笔记的读者
-
互联网从业者,如中高级开发人员、架构师、技术经理、技术专家;
-
需要系统学习分布式事务的开发人员;
-
需要提高分布式事务开发水平的人员;
-
需要时常查阅分布式事务技术资料和开发案例的人员;