本书荣获CSDN【2021年度IT技术影响力之星评选——十大IT图书】,在51CTO举办的“2021年度受读者喜爱的IT图书评选”中荣获【数据科学领域受读者喜爱的图书TOP5】 (1)作者资历深厚:作者来自于,资深的分布式事务架构专家,Apache ShenYu(incubating)、Hmily、RainCat、Myth、mykit-data等多个源框架的创始人。 (2)作者经验丰富:作者有多年的分布式事务经验、微服务架构经验、分布式系统架构经验,以及分布式事务框架的架构和发经验。
售 价:¥
纸质售价:¥89.20购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
作者简介
关于本书
推荐语
前言
第一部分 分布式事务基础
第1章 事务的基本概念
1.1 事务的特性
1.1.1 原子性
1.1.2 一致性
1.1.3 隔离性
1.1.4 持久性
1.2 事务的类型
1.2.1 扁平事务
1.2.2 带有保存点的扁平事务
1.2.3 链式事务
1.2.4 嵌套事务
1.2.5 分布式事务
1.3 本地事务
1.3.1 基本概念
1.3.2 本地事务的执行流程
1.3.3 本地事务的优缺点
1.4 MySQL事务基础
1.4.1 并发事务带来的问题
1.4.2 MySQL事务隔离级别
1.4.3 MySQL中各种事务隔离级别的区别
1.4.4 MySQL事务隔离级别最佳实践
1.4.5 MySQL中锁的分类
1.4.6 死锁的产生和预防
1.4.7 MySQL中的死锁问题
1.4.8 InnoDB中的MVCC原理
1.5 本章小结
第2章 MySQL事务的实现原理
2.1 Redo Log
2.1.1 Redo Log基本概念
2.1.2 Redo Log基本原理
2.1.3 Redo Log刷盘规则
2.1.4 Redo Log刷盘最佳实践
2.1.5 Redo Log写入机制
2.1.6 Redo Log的LSN机制
2.1.7 Redo Log相关参数
2.2 Undo Log
2.2.1 Undo Log基本概念
2.2.2 Undo Log存储方式
2.2.3 Undo Log基本原理
2.2.4 Undo Log实现MVCC机制
2.2.5 Undo Log相关参数
2.3 BinLog
2.3.1 BinLog基本概念
2.3.2 BinLog记录模式
2.3.3 BinLog文件结构
2.3.4 BinLog写入机制
2.3.5 BinLog组提交机制
2.3.6 BinLog与Redo Log的区别
2.3.7 BinLog相关参数
2.4 MySQL事务流程
2.4.1 MySQL事务执行流程
2.4.2 MySQL事务恢复流程
2.5 MySQL中的XA事务
2.5.1 XA事务的基本原理
2.5.2 MySQL XA事务语法
2.5.3 JDBC操作MySQL XA事务
2.6 本章小结
第3章 Spring事务的实现原理
3.1 Spring事务原理
3.1.1 JDBC直接操作事务
3.1.2 使用Spring管理事务
3.1.3 Spring事务分类
3.1.4 Spring事务超时
3.1.5 Spring事务回滚规则
3.2 Spring事务三大接口
3.2.1 PlatformTransactionManager接口
3.2.2 TransactionDefinition接口
3.2.3 TransactionStatus接口
3.3 Spring事务隔离级别
3.4 Spring事务传播机制
3.4.1 7种事务传播机制类型
3.4.2 常用的事务传播类型
3.5 Spring事务嵌套最佳实践
3.5.1 环境准备
3.5.2 最佳实践场景一
3.5.3 最佳实践场景二
3.5.4 最佳实践场景三
3.5.5 最佳实践场景四
3.5.6 最佳实践场景五
3.5.7 最佳实践场景六
3.5.8 最佳实践场景七
3.6 Spring事务失效的场景
3.6.1 数据库不支持事务
3.6.2 事务方法未被Spring管理
3.6.3 方法没有被public修饰
3.6.4 同一类中的方法调用
3.6.5 未配置事务管理器
3.6.6 方法的事务传播类型不支持事务
3.6.7 不正确地捕获异常
3.6.8 标注错误的异常类型
3.7 本章小结
第4章 分布式事务的基本概念
4.1 分布式系统架构
4.1.1 产生的背景
4.1.2 架构目标和架构原则
4.2 分布式系统架构演进
4.2.1 单体应用架构
4.2.2 垂直应用架构
4.2.3 分布式架构
4.2.4 SOA架构
4.2.5 微服务架构
4.3 分布式事务场景
4.3.1 跨JVM进程
4.3.2 跨数据库实例
4.3.3 多服务访问单数据库
4.4 数据一致性
4.4.1 数据的一致性问题
4.4.2 数据一致性解决方案
4.5 本章小结
第5章 分布式事务的理论知识
5.1 CAP理论
5.1.1 一致性
5.1.2 可用性
5.1.3 分区容忍性
5.1.4 CAP的组合
5.2 Base理论
5.3 本章小结
第二部分 分布式事务解决方案
第6章 强一致性分布式事务解决方案
6.1 强一致性事务概述
6.1.1 典型方案
6.1.2 适用场景
6.1.3 优缺点
6.2 DTP模型
6.2.1 DTP模型的重要概念
6.2.2 DTP模型的执行流程
6.3 2PC模型
6.3.1 2PC模型的执行流程
6.3.2 事务执行成功的流程
6.3.3 事务执行失败的流程
6.3.4 2PC模型存在的问题
6.4 3PC模型
6.4.1 事务执行成功的流程
6.4.2 事务执行失败的流程
6.4.3 3PC模型中存在的问题
6.5 本章小结
第7章 最终一致性分布式事务解决方案
7.1 最终一致性分布式事务概述
7.1.1 典型方案
7.1.2 适用场景
7.1.3 优缺点
7.2 服务模式
7.2.1 可查询操作
7.2.2 幂等操作
7.2.3 TCC操作
7.2.4 可补偿操作
7.3 TCC解决方案
7.3.1 适用场景
7.3.2 需要实现的服务模式
7.3.3 方案的执行流程
7.3.4 方案的优缺点
7.3.5 需要注意的问题
7.4 可靠消息最终一致性解决方案
7.4.1 适用场景
7.4.2 需要实现的服务模式
7.4.3 方案的执行流程
7.4.4 方案的优缺点
7.4.5 需要注意的问题
7.5 最大努力通知型解决方案
7.5.1 适用场景
7.5.2 需要实现的服务模式
7.5.3 方案的执行流程
7.5.4 方案的优缺点
7.5.5 需要注意的问题
7.5.6 最大努力通知与可靠消息最终一致性的区别
7.6 本章小结
第三部分 分布式事务原理
第8章 XA强一致性分布式事务原理
8.1 X/Open DTP模型与XA规范
8.1.1 DTP模型
8.1.2 XA规范
8.1.3 JTA规范
8.1.4 XA二阶段提交
8.2 MySQL对XA规范的支持
8.2.1 MySQL XA事务的语法
8.2.2 MySQL XID详解
8.2.3 MySQL XA事务的状态
8.2.4 MySQL XA的问题
8.3 XA规范的问题思考
8.3.1 XA规范的缺陷
8.3.2 XA流程的优化与异常思考
8.3.3 解决XA数据不一致的问题
8.3.4 解决事务管理器的单点故障问题
8.4 主流的解决方案
8.5 本章小结
第9章 TCC分布式事务原理
9.1 TCC核心思想
9.2 TCC实现原理
9.2.1 TCC核心组成
9.2.2 TCC核心原理
9.3 TCC核心流程
9.3.1 业务场景介绍
9.3.2 Try阶段流程
9.3.3 Confirm阶段流程
9.3.4 Cancel阶段流程
9.4 TCC关键技术
9.5 本章小结
第10章 可靠消息最终一致性分布式事务原理
10.1 基本原理
10.2 本地消息表
10.2.1 实现原理
10.2.2 优缺点
10.3 独立消息服务
10.3.1 实现原理
10.3.2 优缺点
10.4 RocketMQ事务消息
10.4.1 实现原理
10.4.2 RocketMQ本地事务监听接口
10.5 消息发送的一致性
10.5.1 消息发送与确认机制
10.5.2 消息发送的不一致性
10.5.3 如何保证消息发送的一致性
10.6 消息接收的一致性
10.6.1 消息接收与确认机制
10.6.2 消息接收的不一致性
10.6.3 如何保证消息接收的一致性
10.7 消息的可靠性
10.7.1 消息发送的可靠性
10.7.2 消息存储的可靠性
10.7.3 消息消费的可靠性
10.8 本章小结
第11章 最大努力通知型分布式事务原理
11.1 适用场景
11.2 方案特点
11.3 基本原理
11.4 异常处理
11.5 本章小结
第四部分 分布式事务源码与实战
第12章 XA强一致性分布式事务解决方案源码解析
12.1 分布式数据一致性场景的搭建
12.1.1 构建环境
12.1.2 准备环境
12.1.3 修改配置
12.1.4 启动
12.1.5 验证
12.2 ShardingSphere对XA分布式事务方案的整合
12.2.1 ShardingTransactionManager接口
12.2.2 XATransactionManager接口
12.2.3 DataSourceSwapper类
12.2.4 XAConnectionWrapper接口
12.2.5 XA事务初始化
12.2.6 XA资源注册
12.3 ShardingSphere对Atomikos方案的实战与源码解析
12.3.1 Atomikos-XA分布式事务初始化流程
12.3.2 Atomikos-XA分布式事务Begin流程
12.3.3 Atomikos-XA分布式事务资源注册原理
12.3.4 Atomikos-XA分布式事务Commit流程
12.3.5 Atomikos-XA分布式事务Rollback流程
12.3.6 Atomikos-XA分布式事务恢复流程
12.4 ShardingSphere对Narayana方案的实战与源码解析
12.4.1 Narayana环境搭建
12.4.2 Narayana-XA分布式事务初始化流程
12.4.3 Narayana-XA分布式事务Begin流程
12.4.4 Narayana-XA分布式事务资源注册
12.4.5 Narayana-XA分布式事务Commit流程
12.4.6 Narayana-XA分布式事务Rollback流程
12.4.7 Narayana-XA分布式事务恢复流程
12.5 本章小结
第13章 Hmily-TCC分布式事务解决方案源码解析
13.1 Hmily-TCC分布式场景的搭建
13.1.1 准备环境
13.1.2 下载源码并编译
13.1.3 修改配置
13.1.4 启动程序
13.1.5 验证
13.2 Hmily框架初始流程源码解析
13.2.1 加载配置
13.2.2 初始化事务日志存储
13.2.3 初始化事务恢复调度器
13.2.4 初始化事件分发器
13.2.5 初始化Metrics监控信息
13.3 Hmily-TCC分布式事务源码解析
13.3.1 Try流程源码解析
13.3.2 Confirm流程源码解析
13.3.3 Cancel流程源码解析
13.4 Hmily对RPC框架的支持
13.4.1 对Dubbo框架的支持
13.4.2 对Spring Cloud框架的支持
13.4.3 对BRPC框架的支持
13.4.4 对Motan框架的支持
13.4.5 对gRPC框架的支持
13.4.6 对Sofa-RPC框架的支持
13.4.7 对Tars框架的支持
13.5 Hmily-TCC事务恢复源码解析
13.5.1 逻辑处理
13.5.2 事务恢复
13.6 本章小结
第14章 XA强一致性分布式事务实战
14.1 场景说明
14.2 程序模块说明
14.3 数据库表设计
14.4 程序实现
14.4.1 项目搭建
14.4.2 持久层的实现
14.4.3 业务逻辑层的实现
14.4.4 接口层的实现
14.4.5 项目启动类的实现
14.5 测试程序
14.6 本章小结
第15章 TCC分布式事务实战
15.1 场景说明
15.2 程序模块说明
15.3 数据库表设计
15.4 实现项目公共模块
15.4.1 项目搭建
15.4.2 持久层的实现
15.4.3 Dubbo接口的定义
15.5 实现转出银行微服务
15.5.1 项目搭建
15.5.2 业务逻辑层的实现
15.5.3 接口层的实现
15.5.4 项目启动类的实现
15.6 实现转入银行微服务
15.6.1 业务逻辑层的实现
15.6.2 项目启动类的实现
15.7 测试程序
15.8 本章小结
第16章 可靠消息最终一致性分布式事务实战
16.1 场景说明
16.2 程序模块说明
16.3 RocketMQ环境搭建与测试
16.3.1 搭建Java环境
16.3.2 搭建RocketMQ环境
16.3.3 测试RocketMQ环境
16.4 数据库表设计
16.5 实现订单微服务
16.5.1 项目搭建
16.5.2 持久层的实现
16.5.3 业务逻辑层的实现
16.5.4 接口层的实现
16.5.5 项目启动类的实现
16.6 实现库存微服务
16.6.1 项目搭建
16.6.2 持久层的实现
16.6.3 业务逻辑层的实现
16.6.4 项目启动类的实现
16.7 测试程序
16.8 本章小结
第17章 最大努力通知型分布式事务实战
17.1 场景说明
17.2 程序模块说明
17.3 数据库表设计
17.4 实现账户微服务
17.4.1 项目搭建
17.4.2 持久层的实现
17.4.3 业务逻辑层的实现
17.4.4 接口层的实现
17.4.5 启动类的实现
17.5 实现充值微服务
17.5.1 项目搭建与持久层的实现
17.5.2 业务逻辑层的实现
17.5.3 接口层的实现
17.5.4 启动类的实现
17.6 测试程序
17.7 本章小结
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜