分散式套用系統架構設計與實踐

分散式套用系統架構設計與實踐

《分散式套用系統架構設計與實踐》是2022年人民郵電出版社出版的圖書,作者是謝文輝。

基本介紹

  • 中文名:分散式套用系統架構設計與實踐
  • 作者:謝文輝
  • 出版時間:2022年
  • 出版社:人民郵電出版社
  • ISBN:9787115572301
內容簡介,圖書目錄,作者簡介,

內容簡介

隨著網際網路技術的發展,分散式套用系統對具備高性能、高可用性、可擴展性和可維護性的架構的依賴度越來越高。本書以理論與實踐相結合的方式,對分散式套用系統的架構設計進行系統、全面的闡述。本書分為3個部分,第一部分是分散式系統架構概述,介紹一些分散式系統架構下常見的基礎概念和架構設計的目標;第二部分是核心理論及技術,介紹分散式套用系統下常見的技術中間件機制和使用場景,著重介紹分散式套用系統在高性能、高可用性、可擴展性和可維護性等方面常見的最佳化技術;第三部分是架構實踐案例,梳理幾種常見的大型分散式套用系統的架構,並結合具體問題進行分析,使讀者能夠真正理解設計分散式套用系統架構所面臨的問題及解決問題的思路。
本書主要面向初/中/高級程式設計師和架構師,但書中的部分內容也適合產品經理、項目經理閱讀。此外,本書內容由淺入深且案例豐富,也適合作為培訓教材。

圖書目錄

第 一部分 分散式系統架構概述
第 1章 架構的基礎概念 3
1.1 架構的幾個概念 3
1.1.1 系統與子系統 4
1.1.2 模組與組件 4
1.1.3 組件與框架 4
1.2 架構設計的目標 5
1.2.1 高性能 5
1.2.2 高可用性 6
1.2.3 可擴展性 7
1.2.4 可維護性 8
1.3 小結 9
第 2章 架構的演進 10
2.1 單體架構 10
2.2 分層架構 11
2.3 面向服務架構 12
2.4 微服務架構體系 14
2.4.1 微服務架構 14
2.4.2 服務格線架構 16
2.4.3 單元化架構 17
2.5 小結 18
第二部分 核心理論及技術
第3章 常見的基礎組件 21
3.1 數據快取 21
3.1.1 Redis高可用實現方案 22
3.1.2 Redis集群實現方案 24
3.1.3 Redis跨機房數據同步方案 29
3.2 數據分發 34
3.2.1 Kafka的分區機制及副本機制 34
3.2.2 Kafka高吞吐量實現方案 40
3.2.3 Kafka跨機房雙活方案 44
3.3 數據存儲 47
3.3.1 關係資料庫MySQL 48
3.3.2 列式存儲資料庫HBase 49
3.3.3 文檔型存儲資料庫MongoDB 51
3.3.4 圖資料庫Neo4j 54
3.3.5 內容搜尋資料庫Elasticsearch 57
3.4 服務遠程調用 59
3.4.1 RPC架構及原理 59
3.4.2 Dubbo架構及原理 60
3.4.3 gRPC架構及原理 62
3.5 小結 63
第4章 高性能架構 64
4.1 基礎概念 64
4.1.1 性能指標 64
4.1.2 利特爾法則 65
4.1.3 系統最佳化分析 65
4.1.4 系統指標選擇 66
4.2 客戶端及網路接入 66
4.2.1 瀏覽器訪問最佳化 66
4.2.2 CDN快取 68
4.2.3 反向代理 69
4.3 數據存儲 71
4.3.1 資料庫讀寫分離 71
4.3.2 資料庫分庫/分表 82
4.3.3 資料庫如何實現平滑擴容 86
4.3.4 NoSQL綜合解決方案 90
4.4 數據快取 95
4.4.1 適合做快取的場景 95
4.4.2 快取穿透及解決方案 95
4.4.3 快取雪崩及解決方案 97
4.4.4 快取擊穿及解決方案 97
4.4.5 如何保障快取與資料庫數據的一致性 100
4.5 業務邏輯 103
4.5.1 異步處理 103
4.5.2 訊息佇列 106
4.6 架構模式與負載均衡 106
4.6.1 多進程併發模式與多執行緒併發模式 107
4.6.2 阻塞與非阻塞I/O模式 107
4.6.3 負載均衡架構 109
4.7 小結 110
第5章 高可用架構 111
5.1 分散式系統的幾個理論 111
5.1.1 CAP理論 111
5.1.2 BASE理論 114
5.2 數據存儲層 116
5.2.1 雙機架構 116
5.2.2 數據多副本 118
5.3 業務邏輯層 122
5.3.1 有狀態和無狀態 122
5.3.2 服務治理 124
5.3.3 服務降級 125
5.3.4 服務限流 130
5.4 多機房架構 133
5.4.1 多機房的幾種架構 133
5.4.2 多機房多活架構 138
5.4.3 多機房流量分發 141
5.5 小結 143
第6章 可擴展架構 144
6.1 可擴展的幾個維度 145
6.1.1 橫向擴展 145
6.1.2 垂直擴展 146
6.1.3 縱深擴展 147
6.2 可擴展架構的實現 148
6.2.1 反向代理層 148
6.2.2 接入層 149
6.2.3 業務邏輯層 150
6.2.4 數據快取層 152
6.2.5 數據存儲層 152
6.3 幾種典型可擴展架構 153
6.3.1 分層架構 153
6.3.2 服務化架構 153
6.3.3 單元化架構 154
6.4 小結 155
第7章 可維護架構 156
7.1 系統監控工具 156
7.1.1 Zabbix監控系統介紹 156
7.1.2 Prometheus介紹 158
7.1.3 中間件監控系統介紹 159
7.2 業務日誌的監控及分析 162
7.2.1 日誌採集及清洗 163
7.2.2 日誌的傳輸及存儲 165
7.2.3 日誌查詢及可視化 166
7.3 業務數據的安全監控及分析 167
7.3.1 數據安全防護方案 167
7.3.2 數據授權及審計系統 168
7.3.3 數據血緣追蹤 169
7.4 小結 170
第三部分 架構實踐案例
第8章 賬號系統 173
8.1 系統整體架構 173
8.1.1 註冊服務 173
8.1.2 認證服務 175
8.1.3 授權服務 176
8.2 關鍵問題及解決方案 177
8.2.1 如何解決會話粘連問題 177
8.2.2 如何實現數據一致性 181
8.2.3 如何實現安全降級 183
8.3 小結 184
第9章 秒殺系統 185
9.1 系統整體架構 185
9.1.1 接入網關 186
9.1.2 訂單及庫存服務 187
9.1.3 支付服務 189
9.2 關鍵問題及解決方案 190
9.2.1 如何最佳化流量金字塔模型 190
9.2.2 如何解決並發場景下的庫存扣減一致性問題 191
9.2.3 如何提升熱點賬戶的沖扣性能 193
9.3 小結 197
第 10章 訊息推送系統 198
10.1 系統整體架構 198
10.1.1 業務接入層 199
10.1.2 通道層 200
10.1.3 客戶端層 200
10.2 關鍵問題及解決方案 200
10.2.1 如何實現過載保護 201
10.2.2 如何提升訊息分發性能 202
10.2.3 如何解決海量訊息推送明細的存儲問題 203
10.2.4 如何降低推送的客戶端功耗 203
10.2.5 如何解決訊息重複推送問題 204
10.2.6 如何解決海量長連線問題 205
10.2.7 如何解決客戶端訊息偽造問題 206
10.3 小結 206
第 11章 區塊鏈系統 207
11.1 系統整體架構及最佳化 207
11.1.1 接入層 208
11.1.2 池化層及指令處理層 210
11.1.3 網路層 213
11.1.4 存儲層 215
11.2 小結 216

作者簡介

謝文輝,阿里巴巴高級技術專家,曾在華為、魅族、深信服擔任架構師及技術經理,具有10年以上的系統開發及架構設計經驗。他目前在阿里巴巴東南亞電商平台Lazada負責業務風控架構相關工作。他主導過多個雙活機房的設計和構建工作,也主導過多個日均活躍用戶數達千萬級的套用系統的架構設計、改造及最佳化工作,對分散式套用系統的高性能、高可用性和高並發處理有較為豐富的經驗。他的個人興趣在於大數據存儲處理、大規模系統的高性能、高可用性及多機房架構的設計和構建。

相關詞條

熱門詞條

聯絡我們