BATJ架构师首推!分布式事务原理与实战,出神入化

news2024/11/19 14:34:47

前言

广度与深度兼备、理论与实战兼顾的《分布式事务原理与实战》从以下5个维度全面深入的讲解了分布式事务:

  1. 基础知识维度:首先全面介绍了事务和分布式事务的概念和基础知识,然后详细讲解了MySQL事务和Spring事务的实现原理。

  2. 解决方案维度:详细介绍了分布式事务的各种解决方案,包括强一致 性分布式事务解决方案和最终一致性分布式事务解决方案。

  3. 原理分析维度:详细讲解了分布式事务的原理,包括XA强一致性分 布式事务、TCC分布式事务、可靠消息最终一致性分布式事务和最大努力 通知型分布式事务的原理。

  4. 源码实现维度:深入分析了Atomikos、Narayana框架实现XA强一致性 分布式事务解决方案的源码,以及Dromara开源社区的Hmily分布式事务框 架实现TCC分布式事务的源码。

  5. 工程实践维度:通过多个在生产环境中经历了高并发、大流量考验的 综合案例,讲解了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章 最大努力通知型分布式事务实战

本章主要以经典的账户充值业务场景为例,实现了一个完整的最大努 力通知型分布式事务案例。首先对业务场景和程序模块进行了简单的说 明,接下来简单说明了数据库表设计,随后重点实现了账户微服务和充值 微服务,最后对案例程序进行了测试。

适合此笔记的读者

  • 互联网从业者,如中高级开发人员、架构师、技术经理、技术专家;

  • 需要系统学习分布式事务的开发人员;

  • 需要提高分布式事务开发水平的人员;

  • 需要时常查阅分布式事务技术资料和开发案例的人员;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/543087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新一代产业变革席卷全球,深眸科技融合AI+机器视觉实现智造升级

随着新一代产业变革席卷全球,人工智能成为变革的核心方向,借助人工智能崛起的东风,机器视觉也逐渐成为工业制造业的必选项。在工业4.0和中国制造2025的推动下,中国制造企业纷纷投入到智能化转型的过程中,但就目前来看&…

YOLO 算法系列

我们分享了YOLO系列的文章,包括前段时间刚刚发布的YOLOv7检测算法,虽然YOLOv7对象检测算法是YOLO最新的模型,且可以支持对象分割,人体姿态检测等,但是最新的YOLO系列检测模型也同步进行了更新,那就是刚刚开…

正版软件,官方授权。RadiAnt DICOM Viewer - 软件版 / CD/DVD版

灵活、简单、快速 RadiAnt 是一个医学图像的 PACS DICOM 浏览器 设计是为了给您独特体验,它界面直观,性能无与伦比,您的体验感一定爆棚! RadiAnt DICOM Viewer是一款专为医学影像浏览看图而设计的软件。它具有单个窗口界面&…

全屋智能,始终在等一双“究极手”

《塞尔达传说:王国之泪》是今年迄今为止最火爆的游戏,也是全球科技爱好者在这个5月里共同关注的热门话题。 游戏中,有一个广大玩家津津乐道的新功能,是主角林克具备了一种名为“究极手”的能力。它可以把游戏里的各种各样的物品组…

卷起来!Dr. LLaMA:通过生成数据增强改进特定领域 QA 中的小型语言模型,重点关注医学问答任务...

大家好,最近突然发现了一篇在专门应用于医学领域的LLaMA,名为Dr.LLaMA(太卷了太卷了),就此来分享下该语言模型的构建方法和最终的性能情况。 论文:Dr. LLaMA: Improving Small Language Models in Domain-S…

晶能转债,正元转02上市价格预测

晶能转债 基本信息 转债名称:晶能转债,评级:AA,发行规模:100.0亿元。 正股名称:晶科能源,今日收盘价:12.19元,转股价格:13.79元。 当前转股价值 转债面值 / …

word怎么转换pdf?提供几个思路

在现代互联网时代,我们经常需要将文档转换为PDF格式,以便于共享和打印。虽然Word文件是最常见的文档格式之一,但是许多人不知道如何将其转换为PDF格式。在本文中,我们将介绍如何使用不同的方法将Word文档转换为PDF格式。 使用第三…

Flutter实现PopupMenu(弹出设置菜单)

PopupMenuButton简介 PopupMenuButton是一个用于创建弹出菜单的小部件。它通常与IconButton或其他触发菜单显示的小部件一起使用。当用户点击触发按钮时,PopupMenuButton会在屏幕上方或下方弹出一个菜单,显示一组选项供用户选择。 PopupMenuButton常用…

测试的缺陷密度如何减少

测试的缺陷密度如何减少 随着软件开发的不断进步,测试已经成为一个非常重要的环节。测试的目的是发现空间中的缺陷,以确保软件的质量和稳定性。然而,缺陷密度的高低是影响测试效果的重要因素之一。高缺陷密度意味着测试人员需要更多的时间和精…

在 Ubuntu 22.04 上安装 KubeSphere 实战教程

作者:老 Z,中电信数智科技有限公司山东分公司运维架构师,云原生爱好者,目前专注于云原生运维,云原生领域技术栈涉及 Kubernetes、KubeSphere、DevOps、OpenStack、Ansible 等。 前言 导图 知识点 定级:入…

JavaScript中eval和with语句如何影响作用域链:探索深度知识

前言 系列首发于公众号『前端进阶圈』,若不想错过更多精彩内容,请“星标”一下,敬请关注公众号最新消息。 JavaScript中eval和with语句如何影响作用域链:探索深度知识 前言 在上篇文章中,我们介绍了深度剖析了作用域…

maxwell小白入门

执行同步binlog数据命令路径 maxwell安装目录下执行启动命令增量同步命令: ./bin/maxwell --config ./conf/meituan(文件目录)/具体配置文件名.properties --daemon采集历史数据 ./bin/maxwell-bootstrap --config ./conf/meituan(文件目录)/具体配置文件名.properties --da…

javaIO流之缓冲流

目录 简介1、字节缓冲流1.1构造方法1.2缓冲流的高效1.3为什么字节缓冲流会这么快?1.4byte & 0xFF 2、字符缓冲流2.1构造方法2.2字符缓冲流特有方法 3、练习 简介 Java 的缓冲流是对字节流和字符流的一种封装,通过在内存中开辟缓冲区来提高 I/O 操作…

Kotlin DSL 现已成为全新 Gradle 构建的默认设置

作者 / Kotlin 产品经理 James Ward、开发者关系工程师 Boris Farber 四年来,Android 一直贯彻 "Kotlin 优先" 的原则,许多 Android 开发者已经做出了改变,陆续推出了效率更高、性能更稳定的应用。然而,尽管 Kotlin (bu…

2023—Unity打包Pico4(3)全流程(Pico插件)

一、项目选择了2021.3.0版本的URP,把项目Build成Android 二、打开Project Setting→ 安装最下面的XR Plugin Management 安装完成后的界面,此时还没有Pico选项出现 三、我们需要在该网站下载Pico的SDK包 picoxr/VRTK-Support (github.com) 解压该文件到…

理解搜索引擎优化

我们需要了解搜索引擎如何对网站进行排名,并优化我们的网站以便于搜索引擎的抓取,这被称为SEO(搜索引擎优化)。 搜索引擎的工作分为三个阶段: •爬虫读取页面内容(HTML代码)并跟随超链接读取更多…

VR数字乡村:打造乡村振兴新通道,让乡村“走出去”

VR数字乡村是基于VR全景技术来振兴农村经济,并改善农村生活的一种发展模式。在建设数字化乡村的背景下,VR全景技术在改造升级农村农业、养殖管理、设备生产等多个方面都有积极的作用。 乡村振兴的难题就在于如何走出去,如何宣传自身&#xff…

聚观早报 |腾讯Q1营收重回两位数增长;特斯拉向印度政府提议建厂

今日要闻:腾讯Q1营收重回两位数增长;传特斯拉向印度政府提议建厂;ChatGPT创始人呼吁加强对AI监管;笑果被罚款1335万;药明康德联合创始人赵宁去世 腾讯Q1营收重回两位数增长 5 月 17 日,腾讯控股发布 2023 …

代理、正向代理与反向代理

一、代理 1.1 什么是代理 代理也被叫做网络代理,是一种比较特殊的网络服务,允许一个终端(通常指客户端)通过这个服务与另一个终端(通常指服务器端)进行非直接的连接。例如:一些网关、路由器等…

C语言递归算法实现经典例题

一.递归 1.什么是递归 递归是一种编程技术,它通过在函数内部反复调用自身来解决问题。当一个程序调用自己时,这就称为递归调用。递归可以有助于简化某些算法的实现和理解。在递归过程中,每个调用都会将一些数据保存在栈上,直到递…