网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 深入理解分布式事务 原理与实战 |
分类 | 教育考试-考试-计算机类 |
作者 | 肖宇,冰河 |
出版社 | 机械工业出版社 |
下载 | |
简介 | 编辑推荐 (1)作者资历深厚:作者来自于京东,资深的分布式事务架构专家,Apache ShenYu(incubating)、Hmily、RainCat、Myth、mykit-data等多个开源框架的创始人。(2)作者经验丰富:作者有多年的分布式事务经验、微服务架构经验、分布式系统架构经验,以及分布式事务框架的架构和开发经验。(3)广度深度兼备:从基础知识、解决方案、原理分析、源码实现、工程实战5个维度全面、深入讲解分布式事务。(4)注重工程实践:书中有大量经过了生产环境的高并发、高流量考验的完整案例,并附案例代码,读者可以直接复用。(5)大厂专家推荐:来自京东、阿里、腾讯、蚂蚁金服、滴滴、饿了么、58集团、IBM等互联网大厂及Apache软件基金会的近20位专家高口碑力荐。在分布式应用系统中,特别是在金融相关的场景下,分布式事务是大家都关注的核心技术,同样也是系统的技术难点。本书从数据库和服务的分布式基础开始,由浅入深阐述了分布式事务的原理、解决方案。作者从框架开发者的视角分享了分布式事务实现的源码和实践用例,对于应用架构师和开发者都有学习和参考的价值。——郑灏 京东科技高级技术总监分布式事务是伴随分布式数据库架构发展而衍生出的关键技术,是影响分布式数据库市场竞争力的关键。本书深入浅出地讲解了分布式事务的基本原理和应用实践,具有很好的指导意义。适合数据库研发、数据库架构师和DBA等同学深入学习。——高新刚 京东科技数据库研发负责人本书以深入浅出、通俗易懂的语言揭开了分布式事务的神秘面纱,不管是对入门型还是进阶型的微服务爱好者都有较多的指导和借鉴意义。——沈建林 京东科技中间件团队负责人如今,越来越多的企业开始面向广阔的数字生态搭建企业应用,而对这些需要升级技术底座的企业来说,分布式事务成为要解决的关键性技术问题,相信这本书一定能很好地帮读者答疑解惑!——付晓岩 IBM 副合伙人、资深企业级业务架构专家、《企业级业务架构设计:方法论与实践》和《银行数字化转型》作者本书从事务的基本概念、数据强一致性模型的2PC与3PC实现,到Base补偿式事务等方面,详细描述了分布式事务的应用场景以及多种分布式系统架构的演进。这是一本深入讲解分布式事务原理和丰富应用的很好的参考书。——刘勋 滴滴大数据高级技术专家,Apache Hadoop/Zeppelin贡献者、Submarine 贡献者及 PMC本书由浅入深地介绍了各分布式事务的优缺点和适用场景,理论结合实践,大大减少了事务相关资料阅读与理解的难度,对于想深入学习事务的读者来说非常值得入手!——代立冬 Apache DolphinScheduler PMC主席、Apache Incubator PMC本书以开源分布式框架作者的视角,全面总结了事务的核心技术,内容涵盖了广泛使用的MySQL和Spring的事务机制、业界分布式事务架构理论以及源码与实战,适合希望深入理解事务机制、提升软件设计与架构经验的读者阅读。——杨晓峰 腾讯专家工程师、开源联盟主委会成员、大数据专家团成员、OpenJDK贡献者专门以事务为主题的图书并不常见。本书系统地梳理了事务的概念,针对数据库到中间件和框架类的事务实现,带领读者抽丝剥茧、深刻解读,帮助读者从全景到细节,建立对事物的深入理解,是工程师深度探索技术的优质读物。——张亮 Apache ShardingSphere PMC 主席、SphereEx CEO 本书由浅入深、由点到面完整地将分布式事务相关理论、解决方案以及源码实战呈现在读者面前,推荐给正在寻求突破和高速成长的技术人。——曾波(波姐) 资深互联网架构师、《Java性能优化实践》译者本书不仅包含了肖宇和冰河积累多年的实战经验,更从多种场景出发,详解可落地方案,而且从多种分布式事务框架的使用和原理入手,带领读者一步步揭开分布式事务的面纱,这是一本非常不错的图书,强烈推荐大家阅读学习。——程超 《高可用可伸缩微服务架构》作者本书作者在微服务领域深耕多年,具备深厚的分布式事务开发经验,不仅在公司主导一线开发,同时也是开源分布式事务框架Hmily项目的作者。本书字里行间蕴含着作者对分布式事务独到的见解,内容上不仅有原理和业界主流的解决方案,还包含了一线项目的实战和源码解析。无论是刚入门的开发者,还是从事开发和研究工作多年的资深工程师,本书都会让你受益匪浅。——张永伦 Apache ShardingSphere PMC/ Apache ShenYu PPMC本书从MySQL InnoDB引擎的事务实现讲起,逐步扩展到分布式事务场景,从原理到工程实践,理论结合实践,是分布式事务领域的经典之作,无论是对分布式事务的初学者还是具有一定开发实践经验的工程师或架构师,都有一定的参考和借鉴意义。——于雨 蚂蚁金服dubbo go项目负责人冰河是一个对技术非常严谨和有追求的人,尤其对分布式领域的分布式事务有着深刻的理解和丰富的架构经验。本书把分布式事务的基础、原理、解决方案和实战都讲得非常透彻,强烈推荐每一位程序员阅读。——程军 公众号“军哥手记”维护者,前饿了么技术总监 无论是传统的单体架构,还是目前主流的分布式架构,事务都是绕不开的技术难题。本书从基本概念到原理介绍,再到主流的解决方案,系统地 内容推荐 本书的广度与深度兼备、理论与实战兼顾的分布式事务专著,它从基础知识、解决方案、原理分析、源码实现、工程实战5个维度对分布式事务做了全面、细致的讲解,试图解决你在实践中遇到的所有关于分布式事务的问题。 两位作者都是分布式事务领域的资深架构专家,是Apache ShenYu(incubating)网关创始人、Hmily、RainCat、Myth等分布式事务框架的创始人。本书因为内容扎实,所以得到了来自京东、阿里、腾讯、蚂蚁金服、滴滴、饿了么、58集团、IBM等互联网大厂及Apache软件基金会的近20位专家的高度评价。 ·基础知识维度:首先全面介绍了事务和分布式事务的概念和基础知识,然后详细讲解了MySQL事务和Spring事务的实现原理; ·解决方案维度:详细介绍了分布式事务的各种解决方案,包括强一致性分布式事务解决方案和最终一致性分布式事务解决方案; ·原理分析维度:详细讲解了分布式事务的原理,包括XA强一致性分布式事务、TCC分布式事务、可靠消息最终一致性分布式事务和优选努力通知型分布式事务的原理。 ·源码实现维度:深入分析了Atomikos,Narayana框架实现XA强一致性分布式事务解决方案的源码,以及Dromara开源社区的Hmily分布式事务框架实现TCC分布式事务的源码; ·工程实践维度:通过多个在生产环境中经历了高并发、大流量考验的综合案例,讲解了XA强一致性分布式事务、TCC分布式事务、可靠消息最终一致性分布式事务和优选努力通知型分布式事务的工程实践方法。 全书配有大量流程图 目录 推荐语 序 前言 部分分布式事务基础 第1章事务的基本概念2 1.1事务的特性2 1.1.1原子性3 1.1.2一致性3 1.1.3隔离性3 1.1.4持久性3 1.2事务的类型4 1.2.1扁平事务4 1.2.2带有保存点的扁平事务4 1.2.3链式事务5 1.2.4嵌套事务5 1.2.5分布式事务5 1.3本地事务5 1.3.1基本概念6 1.3.2本地事务的执行流程6 1.3.3本地事务的优缺点7 1.4MySQL事务基础7 1.4.1并发事务带来的问题7 1.4.2MySQL事务隔离级别9 1.4.3MySQL中各种事务隔离级别的区别10 1.4.4MySQL事务隔离级别实践11 1.4.5MySQL中锁的分类19 1.4.6死锁的产生和预防23 1.4.7MySQL中的死锁问题24 1.4.8InnoDB中的MVCC原理25 1.5本章小结28 第2章MySQL事务的实现原理29 2.1RedoLog29 2.1.1RedoLog基本概念29 2.1.2RedoLog基本原理30 2.1.3RedoLog刷盘规则30 2.1.4RedoLog刷盘实践32 2.1.5RedoLog写入机制34 2.1.6RedoLog的LSN机制35 2.1.7RedoLog相关参数36 2.2UndoLog36 2.2.1UndoLog基本概念36 2.2.2UndoLog存储方式37 2.2.3UndoLog基本原理37 2.2.4UndoLog实现MVCC机制37 2.2.5UndoLog相关参数40 2.3BinLog41 2.3.1BinLog基本概念41 2.3.2BinLog记录模式41 2.3.3BinLog文件结构42 2.3.4BinLog写入机制43 2.3.5BinLog组提交机制43 2.3.6BinLog与RedoLog的区别45 2.3.7BinLog相关参数45 2.4MySQL事务流程46 2.4.1MySQL事务执行流程46 2.4.2MySQL事务恢复流程47 2.5MySQL中的XA事务48 2.5.1XA事务的基本原理48 2.5.2MySQLXA事务语法49 2.5.3JDBC操作MySQLXA事务52 2.6本章小结54 第3章Spring事务的实现原理55 3.1Spring事务原理55 3.1.1JDBC直接操作事务55 3.1.2使用Spring管理事务56 3.1.3Spring事务分类57 3.1.4Spring事务超时57 3.1.5Spring事务回滚规则57 3.2Spring事务三大接口57 3.2.1PlatformTransactionManager接口57 3.2.2TransactionDefinition接口58 3.2.3TransactionStatus接口60 3.3Spring事务隔离级别61 3.4Spring事务传播机制62 3.4.17种事务传播机制类型62 3.4.2常用的事务传播类型65 3.5Spring事务嵌套实践65 3.5.1环境准备66 3.5.2实践场景一71 3.5.3实践场景二72 3.5.4实践场景三73 3.5.5实践场景四74 3.5.6实践场景五75 3.5.7实践场景六76 3.5.8实践场景七77 3.6Spring事务失效的场景79 3.6.1数据库不支持事务79 3.6.2事务方法未被Spring管理79 3.6.3方法没有被public修饰79 3.6.4同一类中的方法调用80 3.6.5未配置事务管理器80 3.6.6方法的事务传播类型不支持事务81 3.6.7不正确地捕获异常81 3.6.8标注错误的异常类型82 3.7本章小结83 第4章分布式事务的基本概念84 4.1分布式系统架构84 4.1.1产生的背景84 4.1.2架构目标和架构原则85 4.2分布式系统架构演进86 4.2.1单体应用架构86 4.2.2垂直应用架构87 4.2.3分布式架构88 4.2.4SOA架构89 4.2.5微服务架构89 4.3分布式事务场景90 4.3.1跨JVM进程90 4.3.2跨数据库实例91 4.3.3多服务访问单数据库91 4.4数据一致性92 4.4.1数据的一致性问题92 4.4.2数据一致性解决方案93 4.5本章小结93 第5章分布式事务的理论知识94 5.1CAP理论94 5.1.1一致性94 5.1.2可用性95 5.1.3分区容忍性95 5.1.4CAP的组合96 5.2Base理论97 5.3本章小结98 第二部分分布式事务解决方案 第6章强一致性分布式事务解决方案100 6.1强一致性事务概述100 6.1.1典型方案100 6.1.2适用场景101 6.1.3优缺点101 6.2DTP模型101 6.2.1DTP模型的重要概念101 6.2.2DTP模型的执行流程102 6.32PC模型102 6.3.12PC模型的执行流程103 6.3.2事务执行成功的流程103 6.3.3事务执行失败的流程104 6.3.42PC模型存在的问题105 6.43PC模型105 6.4.1事务执行成功的流程105 6.4.2事务执行失败的流程106 6.4.33PC模型中存在的问题108 6.5本章小结108 第7章终一致性分布式事务解决方案109 7.1终一致性分布式事务概述109 7.1.1典型方案109 7.1.2适用场景110 7.1.3优缺点110 7.2服务模式110 7.2.1可查询操作111 7.2.2幂等操作111 7.2.3TCC操作112 7.2.4可补偿操作113 7.3TCC解决方案113 7.3.1适用场景114 7.3.2需要实现的服务模式114 7.3.3方案的执行流程114 7.3.4方案的优缺点115 7.3.5需要注意的问题116 7.4可靠消息终一致性解决方案117 7.4.1适用场景117 7.4.2需要实现的服务模式117 7.4.3方案的执行流程118 7.4.4方案的优缺点119 7.4.5需要注意的问题120 7.5努力通知型解决方案120 7.5.1适用场景120 7.5.2需要实现的服务模式121 7.5.3方案的执行流程121 7.5.4方案的优缺点122 7.5.5需要注意的问题122 7.5.6努力通知与可靠消息终一致性的区别123 7.6本章小结123 第三部分分布式事务原理 第8章XA强一致性分布式事务原理126 8.1X/OpenDTP模型与XA规范126 8.1.1DTP模型126 8.1.2XA规范127 8.1.3JTA规范127 8.1.4XA二阶段提交128 8.2MySQL对XA规范的支持129 8.2.1MySQLXA事务的语法129 8.2.2MySQLXID详解129 8.2.3MySQLXA事务的状态130 8.2.4MySQLXA的问题131 8.3XA规范的问题思考132 8.3.1XA规范的缺陷132 8.3.2XA流程的优化与异常思考133 8.3.3解决XA数据不一致的问题134 8.3.4解决事务管理器的单点故障问题135 8.4主流的解决方案135 8.5本章小结136 第9章TCC分布式事务原理137 9.1TCC核心思想137 9.2TCC实现原理139 9.2.1TCC核心组成139 9.2.2TCC核心原理140 9.3TCC核心流程142 9.3.1业务场景介绍142 9.3.2Try阶段流程143 9.3.3Confirm阶段流程144 9.3.4Cancel阶段流程145 9.4TCC关键技术146 9.5本章小结147 第10章可靠消息终一致性分布式事务原理148 10.1基本原理148 10.2本地消息表149 10.2.1实现原理149 10.2.2优缺点150 10.3独立消息服务151 10.3.1实现原理151 10.3.2优缺点152 10.4RocketMQ事务消息153 10.4.1实现原理153 10.4.2RocketMQ本地事务监听接口154 10.5消息发送的一致性155 10.5.1消息发送与确认机制155 10.5.2消息发送的不一致性156 10.5.3如何保证消息发送的一致性157 10.6消息接收的一致性158 10.6.1消息接收与确认机制158 10.6.2消息接收的不一致性159 10.6.3如何保证消息接收的一致性159 10.7消息的可靠性161 10.7.1消息发送的可靠性161 10.7.2消息存储的可靠性161 10.7.3消息消费的可靠性162 10.8本章小结162 第11章努力通知型分布式事务原理163 11.1适用场景163 11.2方案特点164 11.3基本原理164 11.4异常处理165 11.5本章小结166 第四部分分布式事务源码与实战 第12章XA强一致性分布式事务解决方案源码解析168 12.1分布式数据一致性场景的搭建168 12.1.1构建环境168 12.1.2准备环境169 12.1.3修改配置169 12.1.4启动171 12.1.5验证171 12.2ShardingSphere对XA分布式事务方案的整合172 12.2.1ShardingTransactionManager接口172 12.2.2XATransactionManager接口174 12.2.3DataSourceSwapper类174 12.2.4XAConnectionWrapper接口175 12.2.5XA事务初始化175 12.2.6XA资源注册176 12.3ShardingSphere对Atomikos方案的实战与源码解析178 12.3.1Atomikos-XA分布式事务初始化流程178 12.3.2Atomikos-XA分布式事务Begin流程183 12.3.3Atomikos-XA分布式事务资源注册原理185 12.3.4Atomikos-XA分布式事务Commit流程186 12.3.5Atomikos-XA分布式事务Rollback流程191 12.3.6Atomikos-XA分布式事务恢复流程193 12.4ShardingSphere对Narayana方案的实战与源码解析198 12.4.1Narayana环境搭建198 12.4.2Narayana-XA分布式事务初始化流程199 12.4.3Narayana-XA分布式事务Begin流程206 12.4.4Narayana-XA分布式事务资源注册208 12.4.5Narayana-XA分布式事务Commit流程208 12.4.6Narayana-XA分布式事务Rollback流程211 12.4.7Narayana-XA分布式事务恢复流程212 12.5本章小结216 第13章Hmily-TCC分布式事务解决方案源码解析217 13.1Hmily-TCC分布式场景的搭建217 13.1.1准备环境218 13.1.2下载源码并编译220 13.1.3修改配置220 13.1.4启动程序222 13.1.5验证223 13.2Hmily框架初始流程源码解析223 13.2.1加载配置225 13.2.2初始化事务日志存储229 13.2.3初始化事务恢复调度器234 13.2.4初始化事件分发器235 13.2.5初始化Metrics监控信息236 13.3Hmily-TCC分布式事务源码解析238 13.3.1Try流程源码解析239 13.3.2Confirm流程源码解析253 13.3.3Cancel流程源码解析258 13.4Hmily对RPC框架的支持261 13.4.1对Dubbo框架的支持261 13.4.2对SpringCloud框架的支持263 13.4.3对BRPC框架的支持265 13.4.4对Motan框架的支持267 13.4.5对gRPC框架的支持268 13.4.6对Sofa-RPC框架的支持270 13.4.7对Tars框架的支持272 13.5Hmily-TCC事务恢复源码解析273 13.5.1逻辑处理274 13.5.2事务恢复275 13.6本章小结276 第14章XA强一致性分布式事务实战277 14.1场景说明277 14.2程序模块说明278 14.3数据库表设计278 14.4程序实现279 14.4.1项目搭建279 14.4.2持久层的实现287 14.4.3业务逻辑层的实现288 14.4.4接口层的实现289 14.4.5项目启动类的实现290 14.5测试程序290 14.6本章小结292 第15章TCC分布式事务实战293 15.1场景说明293 15.2程序模块说明294 15.3数据库表设计295 15.4实现项目公共模块297 15.4.1项目搭建297 15.4.2持久层的实现300 15.4.3Dubbo接口的定义304 15.5实现转出银行微服务305 15.5.1项目搭建305 15.5.2业务逻辑层的实现311 15.5.3接口层的实现313 15.5.4项目启动类的实现313 15.6实现转入银行微服务314 15.6.1业务逻辑层的实现314 15.6.2项目启动类的实现315 15.7测试程序316 15.8本章小结318 第16章可靠消息终一致性分布式事务实战319 16.1场景说明319 16.2程序模块说明321 16.3RocketMQ环境搭建与测试321 16.3.1搭建Java环境321 16.3.2搭建RocketMQ环境322 16.3.3测试RocketMQ环境324 16.4数据库表设计326 16.5实现订单微服务328 16.5.1项目搭建328 16.5.2持久层的实现333 16.5.3业务逻辑层的实现335 16.5.4接口层的实现338 16.5.5项目启动类的实现338 16.6实现库存微服务339 16.6.1项目搭建339 16.6.2持久层的实现339 16.6.3业务逻辑层的实现341 16.6.4项目启动类的实现343 16.7测试程序343 16.8本章小结345 第17章努力通知型分布式事务实战347 17.1场景说明347 17.2程序模块说明348 17.3数据库表设计348 17.4实现账户微服务350 17.4.1项目搭建350 17.4.2持久层的实现355 17.4.3业务逻辑层的实现358 17.4.4接口层的实现360 17.4.5启动类的实现360 17.5实现充值微服务361 17.5.1项目搭建与持久层的实现361 17.5.2业务逻辑层的实现361 17.5.3接口层的实现362 17.5.4启动类的实现363 17.6测试程序363 17.7本章小结365 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。