万本电子书0元读

万本电子书0元读

顶部广告

深入理解分布式事务:原理与实战电子书

(1)作者资历深厚:作者来自于,资深的分布式事务架构专家,Apache ShenYu(incubating)、Hmily、RainCat、Myth、mykit-data等多个源框架的创始人。 (2)作者经验丰富:作者有多年的分布式事务经验、微服务架构经验、分布式系统架构经验,以及分布式事务框架的架构和发经验。 (3)广度深度兼备:从基础知识、解决方案、原理分析、源码实现、工程实战5个维度全面、深讲解分布式事务。

售       价:¥

纸质售价:¥86.00购买纸书

515人正在读 | 0人评论 6.2

作       者:肖宇,冰河

出  版  社:机械工业出版社

出版时间:2021-10-01

字       数:38.7万

所属分类: 科技 > 计算机/网络 > 软件系统

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书的广度与深度兼备、理论与实战兼顾的分布式事务专著,它从基础知识、解决方案、原理分析、源码实现、工程实战5个维度对分布式事务做了全面、细致的讲解,试图解决你在实践中遇到的所有关于分布式事务的问题。 两位作者都是分布式事务领域的资深架构专家,是Apache ShenYu(incubating)网关创始人、Hmily、RainCat、Myth等分布式事务框架的创始人。本书因为内容扎实,所以得到了来自、阿里、腾讯、蚂蚁金服、滴滴、饿了么、58集团、IBM等互联网大厂及Apache软件基金会的近20位专家的高度评价。 基础知识维度:首先全面介绍了事务和分布式事务的概念和基础知识,然后详细讲解了MySQL事务和Spring事务的实现原理; 解决方案维度:详细介绍了分布式事务的各种解决方案,包括强一致性分布式事务解决方案和Z终一致性分布式事务解决方案; 原理分析维度:详细讲解了分布式事务的原理,包括XA强一致性分布式事务、TCC分布式事务、可靠消息Z终一致性分布式事务和Z大努力通知型分布式事务的原理。 源码实现维度:深分析了Atomikos,Narayana框架实现XA强一致性分布式事务解决方案的源码,以及Dromara源社区的Hmily分布式事务框架实现TCC分布式事务的源码; 工程实践维度:通过多个在生产环境中经历了高并发、大流量考验的综合案例,讲解了XA强一致性分布式事务、TCC分布式事务、可靠消息Z终一致性分布式事务和Z大努力通知型分布式事务的工程实践方法。 全书配有大量流程图和原理图,便于读者阅读理解;精选了大量来自生产环境的完整案例及其代码,便于读者动手实践。阅读本书,你将体验到事半功倍的效果。<br/>【推荐语】<br/>本书荣获CSDN【2021年度IT技术影响力之星评选——十大IT图书】,在51CTO举办的“2021年度受读者喜爱的IT图书评选”中荣获【数据科学领域受读者喜爱的图书TOP5】 (1)作者资历深厚:作者来自于,资深的分布式事务架构专家,Apache ShenYu(incubating)、Hmily、RainCat、Myth、mykit-data等多个源框架的创始人。 (2)作者经验丰富:作者有多年的分布式事务经验、微服务架构经验、分布式系统架构经验,以及分布式事务框架的架构和发经验。 (3)广度深度兼备:从基础知识、解决方案、原理分析、源码实现、工程实战5个维度全面、深讲解分布式事务。 (4)注重工程实践:书中有大量经过了生产环境的高并发、高流量考验的完整案例,并附案例代码,读者可以直复用。 (5)大厂专家推荐:来自、阿里、腾讯、蚂蚁金服、滴滴、饿了么、58集团、IBM等互联网大厂及Apache软件基金会的近20位专家高口碑力荐。<br/>【作者】<br/>肖宇 分布式事务架构专家,Apache ShenYu 网关创始人,Dromara源组织创始人,Hmily、RainCat、Myth等分布式事务框架的作者,Apache ShardingSphere提交者。 热爱源,追求优雅代码。有丰富的微服务架构经验,尤其擅长微服务技术栈中的分布式事务、微服务架构、分布式数据库、API网关等解决方案。 冰河 互联网高级技术专家、MySQL技术专家、分布式事务架构专家。 多年来,一直致力于分布式系统架构、微服务、分布式数据库、分布式事务与大数据技术的研究,在高并发、高可用、高可扩展性、高可维护性和大数据等领域拥有丰富的架构经验。 可视化多数据源数据异构中间件mykit-data作者;《海量数据处理与大数据技术实战》和《MySQL技术大全:发、优化与运维实战》作者;“冰河技术”微信公众号维护者。<br/>
目录展开

作者简介

关于本书

推荐语

前言

第一部分 分布式事务基础

第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 本章小结

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部