在微服務(wù)架構(gòu)下,分布式事務(wù)一直是痛點和難點。Seata是阿里巴巴開源的分布式事務(wù)中間件,致力于以高效且對業(yè)務(wù)無侵入的方式,解決在微服務(wù)場景下面臨的分布式事務(wù)問題。 本書作者是阿里巴巴GTS創(chuàng)始人和Seata作者,結(jié)合其多年在分布式事務(wù)領(lǐng)域設(shè)計、研發(fā)和應(yīng)用的經(jīng)驗,深入淺出地闡述了分布式事務(wù)技術(shù)基礎(chǔ)、Seata AT模式、TCC模式、RPC設(shè)計、事務(wù)協(xié)調(diào)器技術(shù)的原理,并給出了兩個開發(fā)實例(AT模式和TCC模式)。 本書可以為微服務(wù)系統(tǒng)架構(gòu)師、研發(fā)人員解決核心業(yè)務(wù)實際問題提供思路,也適合分布式技術(shù)相關(guān)專業(yè)的學(xué)生閱讀,幫助他們建立分布式事務(wù)的知識框架。
姜宇 阿里分布式事務(wù) GTS 創(chuàng)始人,開源軟件 SEATA 作者,F(xiàn)任職于華為云計算,20 級技術(shù)專家。之前任職于阿里中間件,高級技術(shù)專家。之前任職于Oracle Tuxedo,主任工程師。個人擁有26個發(fā)明專利。馮艷娜 現(xiàn)任教于北京聯(lián)合大學(xué)師范學(xué)院,副教授。主要研究方向是智能信息技術(shù),主持參加10余項市教委及校級科研和教研項目。榮獲北京市師德先鋒榮譽稱號。
第1篇 分布式事務(wù)技術(shù)基礎(chǔ)
★第1章 事務(wù)與分布式事務(wù)
1.1 事務(wù)及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柔性事務(wù)
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 事務(wù)模式
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 事務(wù)日志表
3.1.3 事務(wù)日志管理器
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模式的事務(wù)發(fā)起
★第5章 Seata RPC設(shè)計
5.1 網(wǎng)絡(luò)通信
5.2 事務(wù)消息類型
5.3 消息序列化
5.3.1 資源管理器注冊消息的編/解碼
5.3.2 分支事務(wù)注冊消息的編/解碼
5.3.3 合并消息的編/解碼
第6章 Seata事務(wù)協(xié)調(diào)器
6.1 服務(wù)端的啟動流程
6.2 默認的事務(wù)協(xié)調(diào)器
6.3 事務(wù)的消息處理
6.3.1 全局事務(wù)開始事件GlobalBeginRequest
的處理過程
6.3.2 全局事務(wù)提交事件GlobalCommitRequest
的處理過程
6.4 事務(wù)的二階段推進
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模式分布式事務(wù)
★第8章 Seata TCC模式開發(fā)實例
8.1 TCC模式樣例簡介
8.1.1 扣錢業(yè)務(wù)的TCC模式實現(xiàn)
8.1.2 加錢業(yè)務(wù)的TCC模式實現(xiàn)
8.1.3 轉(zhuǎn)賬業(yè)務(wù)的全局事務(wù)
8.2 運行樣例工程
8.2.1 測試全局事務(wù)提交
8.2.2 測試全局事務(wù)回滾
8.3 缺陷分析