幫助中心 | 我的帳號 | 關於我們

深入理解分散式事務(原理與實戰)

  • 作者:肖宇//冰河|責編:韓蕊
  • 出版社:機械工業
  • ISBN:9787111692232
  • 出版日期:2021/10/01
  • 裝幀:平裝
  • 頁數:365
人民幣:RMB 119 元      售價:
放入購物車
加入收藏夾

內容大鋼
    這是一本廣度與深度兼備、理論與實戰兼顧的分散式事務專著,從基礎知識、解決方案、原理分析、源碼實現、工程實戰5個維度對分散式事務做了全面、深入的講解,試圖解決你在實踐中遇到的所有關於分散式事務的問題。
    兩位作者都是分散式事務領域的資深架構專家,是Apache ShenYu(incubating)網關創始人、HmjIy、RainCat、Myth等分散式事務框架的作者。本書因為內容紮實,所以得到了來自京東、阿里、騰訊、螞蟻金服、滴滴、餓了么、58集團、IBM等互聯網大廠及Apache軟體基金會的近20位專家的高度評價。
    基礎知識維度:首先全面介紹了事務和分散式事務的概念和基礎知識,然後詳細講解了MySQL事務和Spring事務的實現原理。
    解決方案維度:詳細介紹了分散式事務的各種解決方案,包括強一致性分散式事務解決方案和最終一致性分散式事務解決方案。
    原理分析維度:詳細講解了分散式事務的原理,包括XA強一致性分散式事務、TCC分散式事務、可靠消息最終一致性分散式事務和最大努力通知型分散式事務的原理。
    源碼實現維度:深入分析了Alomikos、Narayana框架實現XA強一致性分散式事務解決方案的源碼,以及Dromara開源社區的Hmily分散式事務框架實現TCC分散式事務的源碼。
    工程實踐維度:通過多個在生產環境中經歷了高併發、大流量考驗的綜合案例,講解了XA強一致性分散式事務、TCC分散式事務、可靠消息最終一致性分散式事務和最大努力通知型分散式事務的工程實踐方法。
    全書配有大量流程圖和原理圖,便於讀者閱讀理解;精選了大量來自生產環境的完整案例及其代碼,便於讀者動手實踐。閱讀本書,你將體驗到事半功倍的效果。

作者介紹
肖宇//冰河|責編:韓蕊

目錄
推薦語

前言
第一部分  分散式事務基礎
  第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  Bin Log
      2.3.1  Bin Log基本概念
      2.3.2  Bin Log記錄模式
      2.3.3  Bin Log文件結構
      2.3.4  Bin Log寫入機制

      2.3.5  Bin Log組提交機制
      2.3.6  Bin  Log與Redo Log的區別
      2.3.7  Bin Log相關參數
    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.17  種事務傳播機制類型
      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  對SpringCloud框架的支持
      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  本章小結

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032