分散式架構原理與實踐

分散式架構原理與實踐

《分散式架構原理與實踐》是2021年人民郵電出版社出版的圖書。作者是崔皓。

基本介紹

  • 中文名:分散式架構原理與實踐
  • 作者:崔皓
  • 出版時間:2021年11月
  • 出版社人民郵電出版社
  • ISBN:9787115576620
  • 類別:圖書>計算機/網路>軟體工程/開發項目管理
  • 開本:128 開
  • 裝幀:平裝
內容簡介,圖書目錄,作者簡介,

內容簡介

本書從軟體結構的發展歷史入手,通過一個簡單的例子,描述了分散式架構的特性和存在的問題,並圍繞這些問題展開了分析和實踐。書中從為什麼、是什麼、怎么辦這三個方面,分別講解了分散式套用服務的拆分、分散式調用、分散式協同、分散式計算、分散式存儲、分散式資源管理和調度、高性能與可用性以及指標與監控等內容,基本涵蓋了分散式技術的要點。讀者既可以按照邏輯聯繫從前往後看,也可以只閱讀感興趣的章節。

圖書目錄

第 1章 分散式架構設計的特徵與問題 1
1.1 架構設計的演進過程 1
1.1.1 套用與數據一體模式 1
1.1.2 套用與數據分離模式 2
1.1.3 快取與性能的提升 3
1.1.4 伺服器集群處理並發 4
1.1.5 資料庫讀寫分離 5
1.1.6 反向代理和CDN 6
1.1.7 分散式資料庫與分表分庫 9
1.1.8 業務拆分 10
1.1.9 分散式與微服務 11
1.2 一個簡單的例子:分散式架構的組成 13
1.2.1 架構概述與分層 13
1.2.2 客戶端與CDN 15
1.2.3 接入層 16
1.2.4 套用層 17
1.2.5 存儲層 23
1.3 分散式架構的特徵 26
1.4 分散式架構的問題 27
1.4.1 分散式架構的邏輯結構圖 27
1.4.2 套用服務拆分 28
1.4.3 分散式調用 29
1.4.4 分散式協同 29
1.4.5 分散式計算 30
1.4.6 分散式存儲 30
1.4.7 分散式資源管理與調度 31
1.4.8 高性能與可用性 31
1.4.9 指標與監控 31
1.5 本書的閱讀方式 32
1.6 總結 33
第 2章 分散式套用服務的拆分 34
2.1 起因與概念 34
2.2 拆分思路 36
2.3 模型結構 38
2.3.1 通用語言 38
2.3.2 領域、子域和限界上下文 39
2.3.3 實體和值類型 41
2.3.4 聚合和聚合根 45
2.3.5 領域事件 46
2.4 分析業務需求形成套用服務 48
2.4.1 分析業務流程 49
2.4.2 抽取領域對象和生成聚合 51
2.4.3 劃定限界上下文 53
2.5 領域驅動設計分層 54
2.5.1 分層的概述與原則 54
2.5.2 分層的內容 56
2.5.3 分層的總結 57
2.5.4 服務內部的分層調用與服務間的調用 58
2.5.5 把分層映射到代碼結構 60
2.5.6 代碼分層示例 65
2.6 總結 70
第3章 分散式調用 71
3.1 負載均衡 71
3.1.1 負載均衡分類 72
3.1.2 負載均衡算法 83
3.2 API 網關 85
3.2.1 API 網關的定義 85
3.2.2 API 網關的服務定位 87
3.2.3 API 網關的技術原理 88
3.3 服務註冊與發現 90
3.3.1 服務註冊與發現的概念和原理 91
3.3.2 服務註冊中心的可用性 92
3.3.3 服務註冊中心的服務保存 92
3.4 服務間的遠程調用 92
3.4.1 RPC 調用過程 93
3.4.2 RPC 動態代理 94
3.4.3 RPC 序列化 97
3.4.4 協定編碼 98
3.4.5 網路傳輸 99
3.4.6 Netty 實現 RPC 104
3.5 總結 116
第4章 分散式協同 117
4.1 分散式系統的特性與互斥問題 117
4.1.1 集中互斥算法 118
4.1.2 基於許可的互斥算法 120
4.1.3 令牌環互斥算法 122
4.2 分散式鎖 124
4.2.1 分散式鎖的由來和定義 125
4.2.2 通過Redis快取實現分散式鎖 126
4.2.3 通過ZooKeeper 實現分散式鎖 129
4.2.4 分散式分段加鎖 132
4.3 分散式事務 133
4.3.1 ACID 理論 134
4.3.2 CAP 理論 135
4.3.3 BASE 理論 137
4.3.4 DTP 模型 139
4.3.5 分散式事務 2PC 解決方案 141
4.3.6 分散式事務 TCC 解決方案 143
4.4 分散式選舉 146
4.4.1 Bully 算法 147
4.4.2 Raft 算法 150
4.4.3 ZAB 算法 154
4.5 ZooKeeper——分散式系統的實踐 157
4.5.1 從一個簡單的例子開始 157
4.5.2 Znode 的原理與使用 158
4.5.3 Watcher 原理與使用 159
4.5.4 Version 的原理與使用 162
4.5.5 會話的原理與使用 164
4.5.6 服務群組 166
4.6 總結 169
第5章 分散式計算 171
5.1 MapReduce 模式 171
5.1.1 MapReduce 的策略和理念 171
5.1.2 MapReduce 的體系結構 173
5.1.3 MapReduce 的工作流程 175
5.1.4 MapReduce 的套用實例 178
5.2 Stream 模式 180
5.2.1 Stream 模式的處理過程及特點 181
5.2.2 Storm 的體系結構與工作原理 182
5.2.3 Storm 的並發機制 185
5.2.4 Stream Grouping 188
5.2.5 Storm 集群架構 191
5.3 總結 193
第6章 分散式存儲 195
6.1 數據存儲面臨的問題以及解決思路 195
6.1.1 RAID 磁碟陣列 196
6.1.2 分散式存儲的組成要素 199
6.2 分散式資料庫 200
6.2.1 分表分庫 200
6.2.2 主從複製 205
6.2.3 數據擴容 213
6.3 分散式快取 216
6.3.1 快取分片算法 217
6.3.2 Redis 集群方案 221
6.3.3 快取節點之間的通信 222
6.3.4 請求分散式快取的路由 223
6.3.5 快取節點的擴展和收縮 226
6.3.6 快取故障的發現和恢復 228
6.4 總結 230
第7章 分散式資源管理和調度 231
7.1 分散式資源調度的由來與過程 231
7.1.1 資源調度可以解決什麼問題 232
7.1.2 資源調度過程 234
7.2 資源劃分和調度策略 237
7.2.1 Linux Container 資源是如何劃分的 237
7.2.2 任務與資源如何匹配 244
7.3 分散式調度架構 249
7.3.1 中央式調度器 250
7.3.2 兩級調度器 253
7.3.3 共享狀態調度器 259
7.4 Kubernetes——資源調度的實踐 262
7.4.1 Kubernetes 架構概述 263
7.4.2 從一個例子開始 264
7.4.3 kubectl 和 API Server 264
7.4.4 controller manager、Scheduler 和 kubelet 268
7.4.5 Service 和 kubelet 271
7.5 總結 277
第8章 高性能與可用性 278
8.1 快取的套用 278
8.1.1 處處皆快取 279
8.1.2 動靜分離 280
8.1.3 HTTP 快取 284
8.1.4 CDN 快取 288
8.1.5 DNS 結構與訪問流程 289
8.1.6 負載均衡實現動態快取 292
8.1.7 進程內快取 296
8.1.8 分散式進程快取 304
8.2 可用性 306
8.2.1 請求限流 306
8.2.2 服務降級 314
8.2.3 服務熔斷 319
8.3 總結 328
第9章 指標與監控 329
9.1 為什麼需要監控系統 329
9.2 監控系統的指標 330
9.3 創建監控系統的步驟 332
9.4 監控系統的分類 333
9.4.1 日誌類監控 333
9.4.2 調用鏈監控 339
9.4.3 度量類監控:LSM Tree 和 LevelDB 350
9.5 監控系統的分層 355
9.6 Zabbix 實現監控系統 356
9.6.1 Zabbix 構建監控系統過程 357
9.6.2 Zabbix 架構的安裝和配置 358
9.6.3 Zabbix 監控方式 364
9.7 Prometheus 實現監控系統 369
9.7.1 Prometheus 系統架構 369
9.7.2 時間序列與 Metric 數據模型 370
9.7.3 Exporter 採集數據與服務發現 372
9.7.4 報警規則的定義和報警路由的分發 374
9.8 總結 378
第 10章 架構設計思路和要點 379
10.1 架構設計思維方式 379
10.1.1 架構師的設計模型 379
10.1.2 過程設計模型 383
10.1.3 協作式設計模型 386
10.1.4 擴展立方設計模型 389
10.2 重構與測試 391
10.2.1 代碼重構 391
10.2.2 性能測試與壓力測試 395
10.3 學習與發展 401
10.3.1 思維方式 401
10.3.2 學習提升 402
10.3.3 職業發展 403
10.4 總結 405

作者簡介

崔皓資深架構師,10 年分散式架構經驗。曾任惠普技術專家。樂於分享,撰寫了很多熱門技術文章,閱讀量超過 60 萬

相關詞條

熱門詞條

聯絡我們