在微服務架構(gòu)下,分布式事務一直是痛點和難點。Seata是阿里巴巴開源的分布式事務中間件,致力于以高效且對業(yè)務無侵入的方式,解決在微服務場景下面臨的分布式事務問題。 本書作者是阿里巴巴GTS創(chuàng)始人和Seata作者,結(jié)合其多年在分布式事務領(lǐng)域設(shè)計、研發(fā)和應用的經(jīng)驗,深入淺出地闡述了分布式事務技術(shù)基礎(chǔ)、Seata AT模式、TCC模式、RPC設(shè)計、事務協(xié)調(diào)器技術(shù)的原理,并給出了兩個開發(fā)實例(AT模式和TCC模式)。 本書可以為微服務系統(tǒng)架構(gòu)師、研發(fā)人員解決核心業(yè)務實際問題提供思路,也適合分布式技術(shù)相關(guān)專業(yè)的學生閱讀,幫助他們建立分布式事務的知識框架。
姜宇 阿里分布式事務 GTS 創(chuàng)始人,開源軟件 SEATA 作者,F(xiàn)任職于華為云計算,20 級技術(shù)專家。之前任職于阿里中間件,高級技術(shù)專家。之前任職于Oracle Tuxedo,主任工程師。個人擁有26個發(fā)明專利。馮艷娜 現(xiàn)任教于北京聯(lián)合大學師范學院,副教授。主要研究方向是智能信息技術(shù),主持參加10余項市教委及校級科研和教研項目。榮獲北京市師德先鋒榮譽稱號。
第1篇 分布式事務技術(shù)基礎(chǔ)
★第1章 事務與分布式事務
1.1 事務及ACID四大特性
1.1.1 原子性(Atomicity)
1.1.2 一致性(Consistency)
1.1.3 隔離性(Isolation)
1.1.4 持久性(Durability)
1.2 XA兩階段提交協(xié)議
1.2.1 兩階段提交協(xié)議的執(zhí)行過程
1.2.2 兩階段提交協(xié)議的缺點
1.3 分布式基礎(chǔ)之CAP和BASE理論
1.3.1 CAP理論
1.3.2 BASE理論
1.4 TCC柔性事務
1.5 基于消息的終一致性
1.5.1 問題示例
1.5.2 解決方案
第2篇 Seata原理詳解
★第2章 Seata簡介
2.1 Seata發(fā)展歷史
2.2 Seata總體架構(gòu)
2.2.1 模塊組成
2.2.2 邏輯結(jié)構(gòu)
2.3 Seata 事務模式
2.3.1 AT模式
2.3.2 TCC模式
2.3.3 Saga模式
2.3.4 XA模式
★第3章 Seata AT模式
3.1 AT模式的基本原理
3.1.1 工作流程示例
3.1.2 事務日志表
3.1.3 事務日志管理器
3.2 Seata的數(shù)據(jù)源代理
3.2.1 數(shù)據(jù)源代理類
3.2.2 資源管理器
3.2.3 數(shù)據(jù)庫連接代理
3.2.4 StatementProxy 與PreparedStatementProxy
3.3 AT模式的兩階段提交
3.3.1 一階段處理
3.3.2 二階段的提交處理
3.3.3 二階段的回滾處理
★第4章 Seata TCC模式
4.1 TCC模式介紹
4.1.1 TCC模式與 AT模式對比
4.1.2 TCC模式的設(shè)計方法
4.2 TCC模式的實現(xiàn)原理
4.2.1 TCC模式的注解
4.2.2 TCC模式的資源注冊
4.2.3 TCC模式的事務發(fā)起
★第5章 Seata RPC設(shè)計
5.1 網(wǎng)絡通信
5.2 事務消息類型
5.3 消息序列化
5.3.1 資源管理器注冊消息的編/解碼
5.3.2 分支事務注冊消息的編/解碼
5.3.3 合并消息的編/解碼
第6章 Seata事務協(xié)調(diào)器
6.1 服務端的啟動流程
6.2 默認的事務協(xié)調(diào)器
6.3 事務的消息處理
6.3.1 全局事務開始事件GlobalBeginRequest
的處理過程
6.3.2 全局事務提交事件GlobalCommitRequest
的處理過程
6.4 事務的二階段推進
6.5 全局鎖的原理
6.5.1 文件鎖管理器的添加全局鎖
6.5.2 文件鎖管理器的釋放全局鎖
第3篇 Seata開發(fā)實戰(zhàn)
★第7章 Seata AT模式開發(fā)實例
7.1 AT模式樣例簡介
7.2 準備工作
7.3 運行樣例工程
7.4 驗證AT模式分布式事務
★第8章 Seata TCC模式開發(fā)實例
8.1 TCC模式樣例簡介
8.1.1 扣錢業(yè)務的TCC模式實現(xiàn)
8.1.2 加錢業(yè)務的TCC模式實現(xiàn)
8.1.3 轉(zhuǎn)賬業(yè)務的全局事務
8.2 運行樣例工程
8.2.1 測試全局事務提交
8.2.2 測試全局事務回滾
8.3 缺陷分析