TOP
0
0
【簡體曬書區】 單本79折,5本7折,活動好評延長至5/31,趕緊把握這一波!
深入理解分布式事務:原理與實戰(簡體書)
滿額折

深入理解分布式事務:原理與實戰(簡體書)

人民幣定價:119 元
定  價:NT$ 714 元
優惠價:87621
領券後再享88折
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:18 點
相關商品
商品簡介
作者簡介
名人/編輯推薦
目次

商品簡介

本書的廣度與深度兼備、理論與實戰兼顧的分散式事務專著,它從基礎知識、解決方案、原理分析、源碼實現、工程實戰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)作者資歷深厚:作者來自於京東,資深的分散式事務架構專家,Apache ShenYu(incubating)、Hmily、RainCat、Myth、mykit-data等多個開源框架的創始人。

(2)作者經驗豐富:作者有多年的分散式事務經驗、微服務架構經驗、分散式系統架構經驗,以及分散式事務框架的架構和開發經驗。

(3)廣度深度兼備:從基礎知識、解決方案、原理分析、源碼實現、工程實戰5個維度全面、深入講解分散式事務。

(4)注重工程實踐:書中有大量經過了生產環境的高併發、高流量考驗的完整案例,並附案例代碼,讀者可以直接複用。

(5)大廠專家推薦:來自京東、阿裡、騰訊、螞蟻金服、滴滴、餓了麼、58集團、IBM等互聯網大廠及Apache軟件基金會的近20位元專家高口碑力薦。


為什麼要寫這本書

隨著互聯網的不斷發展,互聯網企業的業務在飛速變化,推動著系統架構也在不斷地發生變化。總體來說,系統架構大致經歷了單體應用架構→垂直應用架構→分散式架

構→SOA架構→微服務架構的演變。如今微服務技術越來越成熟,很多企業都採用微服務架構來支撐內部及對外的業務,尤其是在高併發大流量的電商業務場景下,微服務更是企業首選的架構模式。

微服務的普及也帶來了新的問題。原本單一的應用架構只需要連接一臺資料庫實例即可完成所有業務操作,業務方法的邏輯在一個事務中即可完成,涉及的所有資料庫操作要麼全部提交,要麼全部不提交,很容易實現資料的一致性。而在微服務架構下,原本單一的應用被拆分為一個個很小的服務,每個服務都有其獨立的業務和資料庫,服務與服務之間的交互通過接口或者遠端程序呼叫(Remote Procedure Call,RPC)的方式進行,此時,服務與服務之間的資料一致性問題就變得棘手了。

因為微服務這種架構模式本質上就是多個應用連接多個資料庫共同完成一組業務邏輯,所以資料一致性問題就凸顯出來了。除此之外,多個應用連接同一個資料庫和單個應用連接多個資料庫也會產生資料一致性問題。可以這麼說,在互聯網行業,任何企業都會或多或少地遇到資料一致性問題。業界將這種資料一致性問題稱為分散式事務問題。為了解決分散式事務問題,業界提出了一些著名的理論,比如CAP理論和Base理論,並針對這些理論提出了很多解決方案,比如解決強一致性分散式事務的DTP模型、XA事務、2PC模型、3PC模型,解決最終一致性分散式事務的TCC、可靠消息最終一致性、最大努力通知型等模型。不少企業和開源組織,甚至個人都基於這些模型實現了比較通用的分散式事務框架。

深入掌握分散式事務已然成為互聯網行業中每個中高級開發人員和架構師必須掌握的技能,而熟練掌握分散式事務產生的各種場景和解決方案也成為各大互聯網公司對應聘者的基本要求。

儘管對於分散式事務這個話題,業界有不少成熟的解決方案,但是縱觀整個圖書市場,幾乎找不到一本系統深入講解分散式事務的圖書。本書從實際需求出發,全面且細緻地介紹了有關分散式事務的基礎知識、解決方案、實現原理和源碼實戰。每章根據需要配有相關的原理圖和流程圖,並提供完整的實戰案例源碼。書中的每個解決方案都經過了高併發大流量生產環境的考驗,可以直接拿來解決實際生產環境中的分散式事務問題。通過對本書的閱讀和學習,讀者可以更加全面、深入、透徹地理解分散式事務的基礎、解決方案、原理和應用,提高應對分散式事務問題的處理能力和項目的實戰能力。

讀者物件

本書適合以下幾類讀者閱讀:

互聯網從業者,如中高級開發人員、架構師、技術經理、技術專家;

需要系統學習分散式事務的開發人員;

需要提高分散式事務開發水準的人員;

需要時常查閱分散式事務技術資料和開發案例的人員。

本書特色

1.大量圖解和開發案例

為了方便讀者理解,我們在介紹分散式事務的基礎、解決方案、原理、源碼與實戰章節中配有大量的圖解和圖表,同時在源碼與實戰章節配有完整的分散式事務案例,讀者可以參考本書的案例進行學習,並運行本書的案例代碼,以更深入地理解和掌握分散式事務。這些案例代碼和圖解的draw.io原始檔案收錄於隨書資料裡,讀者可以從下面的連結獲取相關內容。

2.技術點全面

本書全面且細緻地介紹了分散式事務的各項知識,包含分散式事務的基礎、解決方案、原理、源碼與實戰。通過閱讀本書,讀者能夠全面掌握分散式事務的原理和應用。

3.案例應用性強,具備較高的實用價值

本書關於分散式事務的各項技術點都配有相關的案例,都是實現分散式事務相關技術的典型案例,具有很強的實用性,方便讀者隨時查閱和參考。

另外,這些實戰案例大都是我們實際工作的總結,尤其是書中涉及的分散式事務框架,均是業界知名的開源分散式事務框架,稍加修改與完善便可應用於實際的生產環境中。

本書內容

本書分為如下四個部分。

第一部分 分散式事務基礎(第1~5章)

首先介紹事務的基本概念,然後介紹MySQL事務和Spring事務的實現原理,最後介紹分散式事務的基本概念和理論知識。

第二部分 分散式事務解決方案(第6~7章)

以大量圖解的方式詳細介紹了分散式事務的各種解決方案,包括強一致性分散式事務解決方案和最終一致性分散式事務解決方案。

第三部分 分散式事務原理(第8~11章)

以大量圖解的方式詳細講解了分散式事務的原理,包括XA強一致性分散式事務、TCC分散式事務、可靠消息最終一致性分散式事務和最大努力通知型分散式事務。

第四部分 分散式事務源碼與實戰(第12~17章)

首先詳細講解了業界比較知名的ShardingSphere框架實現XA分散式事務的源碼,然後詳細剖析了Dromara開源社區的Hmily分散式事務框架實現TCC分散式事務的源碼,最後分別對XA強一致性分散式事務、TCC分散式事務、可靠消息最終一致性分散式事務和最大努力通知型分散式事務進行了實戰案例講解。

如何閱讀本書

對於沒有接觸過分散式事務的讀者,建議按照順序從第1章開始閱讀,並實現每一個案例。

對於有一定MySQL和Spring開發基礎的讀者,可以根據實際情況,有選擇性地閱讀分散式事務的相關章節。

對於書中涉及的每個分散式事務案例,讀者可以先自行思考實現方式,再閱讀相關的案例講解,瞭解各技術對應的原理細節,以加深理解,達到事半功倍的學習效果。

勘誤和支持

本書是肖宇和冰河(排名不分先後)聯合撰寫的。由於水準有限,編寫時間倉促,書中難免會出現一些錯誤或者不準確的地方,懇請讀者批評指正。為此,我們特意在Dromara社區的GitHub上創建了一個單獨的倉庫用來記錄本書的勘誤信息。讀者可以將書中的錯誤發佈在Bug勘誤中,如果遇到任何問題,也可以記錄在這個倉庫中,我們將儘量在在線為讀者提供最滿意的解答。如果有更多寶貴的建議或者意見,也可以聯繫我們。

如果想獲得更多有關分散式事務或者開源框架的最新動態,可以關注微信公眾號“Dromara開源組織”和“冰河技術”。

致謝

首先感謝張逸為本書作序。感謝鄭灝、劉啟榮、高新剛、沈建林、付曉巖、史少鋒、劉勳、張亮、代立冬、楊曉峰、於君澤、孫玄、沈劍、曾波、程超、張永倫、於雨、程軍和駱俊武(排名不分先後)等專家為本書撰寫推薦語。

感謝Dromara開源社區的兄弟姐妹們,感謝你們對社區的長期支持和貢獻。你們的支持是我們寫作的最大動力。

感謝機械工業出版社華章公司的楊福川老師和董惠芝編輯、韓蕊編輯在這一年多的時間裡始終支持我們寫作,是你們的鼓勵和幫助引導我們順利完成了全部書稿。

感謝家人在我們寫作期間默默給予我們支持與鼓勵,並時刻為我們傳遞著信心和力量!

最後,感謝所有支持、鼓勵和幫助過我們的人。謹以此書獻給我們最親愛的家人,以及眾多熱愛開源事業和關注Dromara開源社區的朋友們!

肖宇、冰河


目次

推薦語

前言

第一部分 分散式事務基礎

第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

......


您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 621
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區