深入理解分佈式事務:原理與實戰

肖宇,冰河 著

  • 出版商: 機械工業
  • 出版日期: 2021-10-01
  • 售價: $714
  • 貴賓價: 9.5$678
  • 語言: 簡體中文
  • 頁數: 365
  • 裝訂: 平裝
  • ISBN: 7111692233
  • ISBN-13: 9787111692232
  • 相關分類: MySQLJava 相關技術
  • 立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

本書的廣度與深度兼備、理論與實戰兼顧的分佈式事務專著,它從基礎知識、解決方案、
原理分析、源碼實現、工程實戰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大努力通知型分佈式事務的工程實踐方法。

全書配有大量流程圖和原理圖,便於讀者閱讀理解;
精選了大量來自生產環境的完整案例及其代碼,便於讀者動手實踐。
閱讀本書,你將體驗到事半功倍的效果。

作者簡介

肖宇
分佈式事務架構專家,Apache ShenYu(incubating)網關創始人,
Dromara開源組織創始人,Hmily、RainCat、Myth等分佈式事務框架的作者。
Apache ShardingSphere Committer。
熱愛開源,追求優雅代碼。
有豐富的微服務架構經驗,尤其擅長微服務技術棧中的分佈式事務、
微服務架構,分佈式數據庫、API網關等解決方案。

冰河
互聯網高級技術專家、MySQL技術專家、分佈式事務架構專家。
多年來,一直致力於分佈式系統架構、微服務、分佈式數據庫、分佈式事務與大數據技術的研究,
在高並發、高可用、高可擴展性、高可維護性和大數據等領域擁有豐富的架構經驗。
可視化多數據源數據異構中間件mykit-data作者;
《海量數據處理與大數據技術實戰》和《MySQL技術大全:
開發、優化與運維實戰》作者;“冰河技術”微信公眾號維護者。

目錄大綱

推薦語

前言
第一部分 分佈式事務基礎
第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.4 MySQL事務基礎7
1.4.1 並發事務帶來的問題7
1.4.2 MySQL事務隔離級別9
1.4.3 MySQL中各種事務隔離級別的區別10
1.4.4 MySQL事務隔離級別最佳實踐11
1.4.5 MySQL中鎖的分類19
1.4.6 死鎖的產生和預防23
1.4.7 MySQL中的死鎖問題24
1.4.8 InnoDB中的MVCC原理25
1.5 本章小結28

第2章 MySQL事務的實現原理29
2.1 Redo Log29
2.1.1 Redo Log基本概念29
2.1.2 Redo Log基本原理30
2.1.3 Redo Log刷盤規則30
2.1.4 Redo Log刷盤最佳實踐32
2.1.5 Redo Log寫入機制34
2.1.6 Redo Log的LSN機制35
2.1.7 Redo Log相關參數36
2.2 Undo Log36
2.2.1 Undo Log基本概念36
2.2.2 Undo Log存儲方式37
2.2.3 Undo Log基本原理37
2.2.4 Undo Log實現MVCC機制37
2.2.5 Undo Log相關參數40
2.3 BinLog41
2.3.1 BinLog基本概念41
2.3.2 BinLog記錄模式41
2.3.3 BinLog文件結構42
2.3.4 BinLog寫入機制43
2.3.5 BinLog組提交機制43
2.3.6 BinLog與Redo Log的區別45
2.3.7 BinLog相關參數45
2.4 MySQL事務流程46
2.4.1 MySQL事務執行流程46
2.4.2 MySQL事務恢復流程47
2.5 MySQL中的XA事務48
2.5.1 XA事務的基本原理48
2.5.2 MySQL XA事務語法49
2.5.3 JDBC操作MySQL XA事務52
2.6 本章小結54

第3章 Spring事務的實現原理55
3.1 Spring事務原理55
3.1.1 JDBC直接操作事務55
3.1.2 使用Spring管理事務56
3.1.3 Spring事務分類57
3.1.4 Spring事務超時57
3.1.5 Spring事務回滾規則57
3.2 Spring事務三大接口57
3.2.1 PlatformTransactionManager接口57
3.2.2 TransactionDefinition接口58
3.2.3 TransactionStatus接口60
3.3 Spring事務隔離級別61
3.4 Spring事務傳播機制62
3.4.1 7種事務傳播機制類型62
3.4.2 常用的事務傳播類型65
3.5 Spring事務嵌套最佳實踐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.6 Spring事務失效的場景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.4 SOA架構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.1 CAP理論94
5.1.1 一致性94
5.1.2 可用性95
5.1.3 分區容忍性95
5.1.4 CAP的組合96
5.2 Base理論97
5.3 本章小結98

第二部分 分佈式事務解決方案
第6章 強一致性分佈式事務解決方案100
6.1 強一致性事務概述100
6.1.1 典型方案100
6.1.2 適用場景101
6.1.3 優缺點101
6.2 DTP模型101
6.2.1 DTP模型的重要概念101
6.2.2 DTP模型的執行流程102
6.3 2PC模型102
6.3.1 2PC模型的執行流程103
......