《鳳凰架構:構建可靠的大型分散式系統》2021年出版。作者周志明
基本介紹
- 中文名:鳳凰架構:構建可靠的大型分散式系統
- 作者:周志明
- 類別:計算機
- 出版社:機械工業出版社
- 出版時間:2021年6月30日
- 定價:99 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787111683919
內容簡介,圖書目錄,
內容簡介
這是一本從架構視角講解如何構建大型分散式系統的著作,是超級暢銷書《深入理解Java虛擬機》的作者周志明多年架構和研發經驗的總結,得到了多位行業資深架構專家的聯袂推薦。
全書共16章,分為演進中的架構、架構師的視角、分散式的基石、不可變基礎設施和技術方法論五部分。
第一部分 演進中的架構(第1章)
著重介紹了軟體開發歷史中多種主流架構風格出現的契機、解決的問題以及帶來的新缺陷。
第二部分 架構師的視角(第2~5章)
總結了一名架構師應該在架構設計時思考哪些問題,有哪些主流的解決方案和行業標準做法,各種方案有什麼優缺點,不同的解決方法會帶來什麼不同的影響,等等。
第三部分 分散式的基石(第6~10章)
重點討論了“不同架構風格是應該在技術規範上統一,還是由套用系統自行解決”這個問題,給出了解決思路、方法和常見工具。
第四部分 不可變基礎設施(第11~15章)
重點講解了基礎設施不變性的目的、原理與實現途徑,包括虛擬化容器、容器間網路、持久化存儲、資源與調度、服務格線等內容。
第五部分 技術方法論(第16章)
面向技術決策者集中討論了與分散式、微服務、架構等相關的理論話題,將解決問題的能力歸納、總結、升華為方法論。
圖書目錄
【第一部分 演進中的架構】
第1章 服務架構演進史2
1.1 原始分散式時代2
1.2 單體系統時代5
1.3 SOA時代8
1.4 微服務時代12
1.5 後微服務時代16
1.6 無服務時代19
【第二部分 架構師的視角】
第2章 訪問遠程服務24
2.1 遠程服務調用24
2.1.1 進程間通信24
2.1.2 通信的成本26
2.1.3 三個基本問題28
2.1.4 統一的RPC30
2.1.5 分裂的RPC32
2.2 REST設計風格34
2.2.1 理解REST35
2.2.2 RESTful的系統37
2.2.3 RMM41
2.2.4 不足與爭議45
第3章 事務處理48
3.1 本地事務49
3.1.1 實現原子性和持久性50
3.1.2 實現隔離性54
3.2 全局事務57
3.3 共享事務62
3.4 分散式事務64
3.4.1 CAP與ACID64
3.4.2 可靠事件佇列67
3.4.3 TCC事務69
3.4.4 SAGA事務72
第4章 透明多級分流系統75
4.1 客戶端快取76
4.1.1 強制快取77
4.1.2 協商快取79
4.2 域名解析81
4.3 傳輸鏈路83
4.3.1 連線數最佳化84
4.3.2 傳輸壓縮88
4.3.3 快速UDP網路連線90
4.4 內容分發網路92
4.4.1 路由解析92
4.4.2 內容分發95
4.4.3 CDN套用96
4.5 負載均衡97
4.5.1 數據鏈路層負載均衡99
4.5.2 網路層負載均衡101
4.5.3 套用層負載均衡104
4.5.4 均衡策略與實現106
4.6 服務端快取107
4.6.1 快取屬性108
4.6.2 快取風險117
第5章 架構安全性120
5.1 認證121
5.1.1 認證的標準121
5.1.2 認證的實現128
5.2 授權129
5.2.1 RBAC130
5.2.2 OAuth 2133
5.3 憑證140
5.3.1 Cookie-Session140
5.3.2 JWT142
5.4 保密147
5.4.1 保密的強度147
5.4.2 客戶端加密148
5.4.3 密碼存儲和驗證149
5.5 傳輸151
5.5.1 摘要、加密與簽名151
5.5.2 數字證書154
5.5.3 傳輸安全層157
5.6 驗證160
【第三部分 分散式的基石】
第6章 分散式共識166
6.1 Paxos168
6.1.1 Paxos的誕生169
6.1.2 算法流程169
6.1.3 工作實例172
6.2 Multi Paxos174
6.3 Gossip協定178
第7章 從類庫到服務180
7.1 服務發現180
7.1.1 服務發現的意義181
7.1.2 可用與可靠182
7.1.3 註冊中心實現185
7.2 網關路由186
7.2.1 網關的職責186
7.2.2 網路I/O模型188
7.2.3 BFF網關190
7.3 客戶端負載均衡191
7.3.1 客戶端負載均衡器193
7.3.2 代理負載均衡器194
7.3.3 地域與區域196
第8章 流量治理198
8.1 服務容錯198
8.1.1 容錯策略199
8.1.2 容錯設計模式201
8.2 流量控制209
8.2.1 流量統計指標210
8.2.2 限流設計模式211
8.2.3 分散式限流215
第9章 可靠通信217
9.1 零信任網路217
9.1.1 零信任安全模型的特徵218
9.1.2 Google的實踐探索220
9.2 服務安全222
9.2.1 建立信任222
9.2.2 認證223
9.2.3 授權227
第10章 可觀測性230
10.1 事件日誌233
10.1.1 輸出233
10.1.2 收集與緩衝235
10.1.3 加工與聚合236
10.1.4 存儲與查詢237
10.2 鏈路追蹤239
10.2.1 追蹤與跨度239
10.2.2 數據收集240
10.2.3 追蹤規範化243
10.3 聚合度量244
10.3.1 指標收集245
10.3.2 存儲查詢248
10.3.3 監控預警250
【第四部分 不可變基礎設施】
第11章 虛擬化容器254
11.1 容器的崛起256
11.1.1 隔離檔案:chroot256
11.1.2 隔離訪問:名稱空間257
11.1.3 隔離資源:cgroups258
11.1.4 封裝系統:LXC259
11.1.5 封裝套用:Docker260
11.1.6 封裝集群:Kubernetes263
11.2 以容器構建系統266
11.2.1 隔離與協作266
11.2.2 韌性與彈性271
11.3 以套用為中心的封裝275
11.3.1 Kustomize276
11.3.2 Helm與Chart277
11.3.3 Operator與CRD279
11.3.4 開放套用模型284
第12章 容器間網路288
12.1 Linux網路虛擬化288
12.1.1 網路通信模型289
12.1.2 干預網路通信291
12.1.3 虛擬化網路設備294
12.1.4 容器間通信304
12.2 容器網路與生態306
12.2.1 CNM與CNI306
12.2.2 CNM到CNI308
12.2.3 網路外掛程式生態310
第13章 持久化存儲314
13.1 Kubernetes存儲設計314
13.1.1 Mount和Volume316
13.1.2 靜態存儲分配318
13.1.3 動態存儲分配322
13.2 容器存儲與生態325
13.2.1 Kubernetes存儲架構325
13.2.2 FlexVolume與CSI327
13.2.3 從In-Tree到Out-of-Tree329
13.2.4 容器外掛程式生態331
第14章 資源與調度336
14.1 資源模型336
14.2 服務質量與優先權337
14.3 驅逐機制340
14.4 默認調度器342
第15章 服務格線346
15.1 透明通信的涅槃347
15.1.1 通信成本347
15.1.2 數據平面352
15.1.3 控制平面358
15.2 服務格線與生態360
15.2.1 服務格線接口361
15.2.2 通用數據平面API363
15.2.3 服務格線生態364
【第五部分 技術方法論】
第16章 向微服務邁進368
16.1 目的:微服務的驅動力369
16.2 前提:微服務需要的條件371
16.3 邊界:微服務的粒度375
16.4 治理:理解系統複雜性377
16.4.1 靜態的治理378
16.4.2 發展的治理380
附錄A 技術演示工程實踐383
附錄B 部署Kubernetes集群402