分布式系統原理與工程實踐: 一致性、共識、Paxos、分布式事務、服務治理、微服務、冪等、消息系統、ZooKeeper
定 價:90 元
- 作者:易哥
- 出版時間:2021/12/1
- ISBN:9787121423611
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP316.4
- 頁碼:260
- 紙張:
- 版次:01
- 開本:16開
本書通過理論篇、實踐篇、工程篇、總結篇四篇(13章),介紹了分布式系統的知識體系。理論篇介紹了一致性、共識、分布式約束等知識;實踐篇介紹了分布式鎖、分布式事務、服務發(fā)現與調用、服務保護與網關、冪等接口等知識;工程篇介紹了消息系統中間件 RabbitMQ 和分布式協調中間件ZooKeeper等知識;總結篇則幫助大家厘清分布式系統的知識脈絡。本書適合想要學習分布式系統理論、實踐、工程知識的學生、軟件開發(fā)者。
崔現斌(筆名易哥),畢業(yè)于浙江大學、山東大學,高級軟件系統架構師、網絡工程師、數據庫工程師、軟件測試工程師、注冊電氣工程師。在校成績優(yōu)異,曾獲得國家獎學金兩次,一等獎學金四次,科技創(chuàng)新大賽一等獎三次,以及五四青年科學獎等。主要科研方向為機器學習、分布式算法、容錯算法在無線傳感網絡中的應用,相關論文獲得IEEE通信協會最佳論文獎。具有十余年軟件開發(fā)經驗,曾擔任網站技術部門負責人,現從事互聯網金融行業(yè)。主要負責軟件系統架構設計與后端開發(fā),專注分布式架構、研發(fā)協同、持續(xù)交付等領域,設計并實現應用交付流水系統、任務協作與管理系統、通用流處理平臺等眾多系統或平臺。同時也是一名活躍的開源開發(fā)者。著有書籍《通用源碼閱讀指導書》《高性能架構之道》,兩本書籍均受到多方好評,并在臺灣地區(qū)發(fā)行繁體版。
目錄
理論篇
第1章 分布式概述 2
1.1 概述 2
1.2 應用的演進歷程 3
1.2.1 單體應用 3
1.2.2 集群應用 4
1.2.3 狹義分布式應用 9
1.2.4 微服務應用 11
1.3 分布式系統概述 12
1.3.1 分布式系統的定義 12
1.3.2 分布式一致性問題 14
1.3.3 分布式應用中的節(jié)點 15
1.4 分布式應用的優(yōu)勢 16
1.5 分布式應用的問題 17
1.6 本章小結 20
第2章 一致性 21
2.1 一致性的概念 21
2.1.1 ACID一致性 22
2.1.2 CAP一致性 23
2.1.3 兩種一致性的關系 23
2.2 一致性的強弱 24
2.2.1 嚴格一致性 25
2.2.2 順序一致性 25
2.2.3 線性一致性 27
2.2.4 最終一致性 30
2.2.5 總結 31
2.3 一致性算法 32
2.4 兩階段提交 33
2.4.1 具體實現 33
2.4.2 線性一致性證明 35
2.4.3 優(yōu)劣 39
2.5 三階段提交 39
2.5.1 具體實現 40
2.5.2 優(yōu)劣 42
2.6 本章小結 44
第3章 共識 46
3.1 共識與一致性 46
3.1.1 共識的概念 47
3.1.2 再論“一致性” 49
3.2 拜占庭將軍問題 51
3.3 算法的容錯性 54
3.3.1 非拜占庭容錯算法 55
3.3.2 拜占庭容錯算法 55
3.4 共識算法 56
3.5 Paxos算法 56
3.5.1 提出與證明 57
3.5.2 算法的內容 60
3.5.3 算法實現分析 62
3.5.4 理解與示例 64
3.6 Raft算法 65
3.6.1 Raft算法的內容 66
3.6.2 Raft算法的保證 70
3.6.3 總結分析 73
3.7 本章小結 74
第4章 分布式約束 76
4.1 CAP定理 76
4.1.1 定理的內容 76
4.1.2 示例與理解 77
4.2 從CAP定理到BASE定理 78
4.3 BASE定理 80
4.3.1 BASE定理的含義 80
4.3.2 BASE定理的應用 81
4.4 本章小結 83
實踐篇
第5章 分布式鎖 86
5.1 產生背景 86
5.2 特性 88
5.2.1 全局性 88
5.2.2 唯一性 89
5.2.3 遵從性 90
5.3 設計要點 90
5.4 實現 91
5.4.1 邏輯分布式鎖 91
5.4.2 唯一性索引分布式鎖 92
5.4.3 唯一性校驗分布式鎖 93
5.4.4 一致性分布式鎖 94
5.5 應用場景 96
5.6 本章小結 96
第6章 分布式事務 97
6.1 本地事務與分布式事務 98
6.2 分布式事務的類別 99
6.2.1 應用內多數據庫事務 99
6.2.2 單體應用間事務 99
6.2.3 分布式系統內事務 100
6.2.4 分布式系統間事務 101
6.3 分布式事務的類別總結 101
6.4 應用內多數據庫事務方案 102
6.5 單體應用間事務方案 104
6.5.1 化為本地事務 104
6.5.2 化為應用內多數據庫事務 105
6.5.3 TCC 106
6.5.4 本地異步消息機制 111
6.5.5 異步消息中心機制 113
6.6 近似事務 114
6.7 本章小結 116
第7章 服務發(fā)現與調用 117
7.1 分布式帶來的問題 117
7.2 服務發(fā)現 119
7.2.1 服務發(fā)現模型中的角色 119
7.2.2 反向代理模型 120
7.2.3 注冊中心模型 120
7.2.4 服務網格模型 122
7.2.5 三種模型的比較 123
7.3 服務調用 123
7.3.1 背景介紹 123
7.3.2 基于接口的調用 125
7.3.3 遠程過程調用 126
7.4 本章小結 130
第8章 服務保護與網關 131
8.1 服務保護 131
8.1.1 理論依據 132
8.1.2 隔離 133
8.1.3 限流 135
8.1.4 降級 139
8.1.5 熔斷 142
8.1.6 恢復 144
8.2 服務網關 145
8.2.1 產生背景 145
8.2.2 功能 146
8.2.3 結構 147
8.3 本章小結 147
第9章 冪等接口 148
9.1 概述 148
9.1.1 冪等接口概述 148
9.1.2 章節(jié)結構 150
9.2 代數系統 151
9.2.1 代數系統的定義 151
9.2.2 特殊元素 151
9.2.3 冪等 154
9.3 函數 155
9.3.1 函數的定義 155
9.3.2 復合函數 157
9.4 復合函數的冪等化 157
9.4.1 函數的幺元化 157
9.4.2 函數的零元化 158
9.4.3 運算的冪等化 160
9.4.4 復合函數冪等化總結 161
9.5 接口的幺元化 161
9.6 接口的零元化 162
9.7 調用的冪等化 163
9.7.1 判斷插入數據 163
9.7.2 判斷刪除數據 164
9.7.3 判斷數據版本 164
9.7.4 攔截重試調用 166
9.8 冪等接口總結 167
9.9 本章小結 168
工程篇
第10章 分布式中間件概述 171
第11章 RabbitMQ詳解 174
11.1 消息系統概述 174
11.1.1 消息系統模型 174
11.1.2 消息系統的應用 175
11.2 RabbitMQ概述 177
11.3 RabbitMQ的組件 177
11.3.1 Exchange 177
11.3.2 Queue 178
11.3.3 Message 178
11.4 RabbitMQ的連接 179
11.4.1 生產者與Exchange 179
11.4.2 Exchange與Queue 180
11.4.3 Queue與消費者 181
11.5 附加功能 182
11.5.1 投遞確認功能 182
11.5.2 持久化功能 183
11.5.3 消費確認功能 183
11.5.4 逐條派發(fā)功能 184
11.5.5 RPC功能 184
11.6 模型與應用 185
11.6.1 點對點模型 185
11.6.2 發(fā)布訂閱模型 186
11.7 本章小結 187
第12章 ZooKeeper詳解 188
12.1 單機配置與啟動 188
12.1.1 運行配置 189
12.1.2 啟動 190
12.2 數據模型 191
12.2.1 時間語義 191
12.2.2 樹狀模型 192
12.2.3 znode的數據與狀態(tài) 192
12.2.4 znode的可選特性 194
12.2.5 znode的限額 196
12.2.6 znode權限設置 197
12.3 交互式命令行客戶端 201
12.3.1 設置命令 202
12.3.2 znode操作命令 203
12.3.3 使用示例 205
12.4 監(jiān)聽器 206
12.4.1 特性 206
12.4.2 事件通知 209
12.4.3 交互式命令行客戶端中的監(jiān)聽器 210
12.4.4 其他客戶端中的監(jiān)聽器 210
12.5 連接與會話 211
12.5.1 連接建立 211
12.5.2 服務器切換 214
12.5.3 會話狀態(tài) 215
12.5.4 連接監(jiān)聽器 216
12.6 集群模式 217
12.6.1 集群配置與啟動 217
12.6.2 一致性實現 218
12.6.3 一致性級別討論 221
12.7 應用示例 226
12.8 應用場景 230
12.8.1 節(jié)點命名 231
12.8.2 服務發(fā)現 232
12.8.3 應用配置 233
12.8.4 分布式鎖 233
12.9 本章小結 235
總結篇
第13章 再論分布式系統 238
13.1 分布式與一致性 238
13.2 本書脈絡 240
13.2.1 理論篇 240
13.2.2 實踐篇 242
13.2.3 工程篇 243
13.3 總結與展望 244
13.3.1 總結 244
13.3.2 展望 245
參考文獻 247