分布式應用系統(tǒng)架構(gòu)設計與實踐
定 價:79.9 元
當前圖書已被 287 所學校薦購過!
查看明細
- 作者:謝文輝
- 出版時間:2022/2/1
- ISBN:9787115572301
- 出 版 社:人民郵電出版社
- 中圖法分類:TP316.4
- 頁碼:216
- 紙張:
- 版次:01
- 開本:16開
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,分布式應用系統(tǒng)對具備高性能、高可用性、可擴展性和可維護性的架構(gòu)的依賴度越來越高。本書以理論與實踐相結(jié)合的方式,對分布式應用系統(tǒng)的架構(gòu)設計進行系統(tǒng)、全面的闡述。本書分為3個部分,第一部分是分布式系統(tǒng)架構(gòu)概述,介紹一些分布式系統(tǒng)架構(gòu)下常見的基礎概念和架構(gòu)設計的目標;第二部分是核心理論及技術(shù),介紹分布式應用系統(tǒng)下常見的技術(shù)中間件機制和使用場景,著重介紹分布式應用系統(tǒng)在高性能、高可用性、可擴展性和可維護性等方面常見的優(yōu)化技術(shù);第三部分是架構(gòu)實踐案例,梳理幾種常見的大型分布式應用系統(tǒng)的架構(gòu),并結(jié)合具體問題進行分析,使讀者能夠真正理解設計分布式應用系統(tǒng)架構(gòu)所面臨的問題及解決問題的思路。
本書主要面向初/中/高級程序員和架構(gòu)師,但書中的部分內(nèi)容也適合產(chǎn)品經(jīng)理、項目經(jīng)理閱讀。此外,本書內(nèi)容由淺入深且案例豐富,也適合作為培訓教材。
1.分布式系統(tǒng)是為了解決資源(如計算、存儲等)緊缺的問題而出現(xiàn)的,它包含分布式應用系統(tǒng)和分布式中間件系統(tǒng);
2.本書從基礎的架構(gòu)概念入手,由淺入深地講解分布式應用系統(tǒng)的核心理論,形成了完整的方法論。
3.本書結(jié)合賬號系統(tǒng)、秒殺系統(tǒng)、消息推送系統(tǒng)和區(qū)塊鏈系統(tǒng)這4種常見的大型分布式應用系統(tǒng),詳細講解了架構(gòu)的實現(xiàn)細節(jié)。
4.閱讀本書,讀者可以掌握分布式應用系統(tǒng)的理論體系,并具備業(yè)務實戰(zhàn)能力。
謝文輝,阿里巴巴高級技術(shù)專家,曾在華為、魅族、深信服擔任架構(gòu)師及技術(shù)經(jīng)理,具有10年以上的系統(tǒng)開發(fā)及架構(gòu)設計經(jīng)驗。他目前在阿里巴巴東南亞電商平臺Lazada負責業(yè)務風控架構(gòu)相關工作。他主導過多個雙活機房的設計和構(gòu)建工作,也主導過多個日均活躍用戶數(shù)達千萬級的應用系統(tǒng)的架構(gòu)設計、改造及優(yōu)化工作,對分布式應用系統(tǒng)的高性能、高可用性和高并發(fā)處理有較為豐富的經(jīng)驗。他的個人興趣在于大數(shù)據(jù)存儲處理、大規(guī)模系統(tǒng)的高性能、高可用性及多機房架構(gòu)的設計和構(gòu)建。
第 一部分 分布式系統(tǒng)架構(gòu)概述
第 1章 架構(gòu)的基礎概念 3
1.1 架構(gòu)的幾個概念 3
1.1.1 系統(tǒng)與子系統(tǒng) 4
1.1.2 模塊與組件 4
1.1.3 組件與框架 4
1.2 架構(gòu)設計的目標 5
1.2.1 高性能 5
1.2.2 高可用性 6
1.2.3 可擴展性 7
1.2.4 可維護性 8
1.3 小結(jié) 9
第 2章 架構(gòu)的演進 10
2.1 單體架構(gòu) 10
2.2 分層架構(gòu) 11
2.3 面向服務架構(gòu) 12
2.4 微服務架構(gòu)體系 14
2.4.1 微服務架構(gòu) 14
2.4.2 服務網(wǎng)格架構(gòu) 16
2.4.3 單元化架構(gòu) 17
2.5 小結(jié) 18
第二部分 核心理論及技術(shù)
第3章 常見的基礎組件 21
3.1 數(shù)據(jù)緩存 21
3.1.1 Redis高可用實現(xiàn)方案 22
3.1.2 Redis集群實現(xiàn)方案 24
3.1.3 Redis跨機房數(shù)據(jù)同步方案 29
3.2 數(shù)據(jù)分發(fā) 34
3.2.1 Kafka的分區(qū)機制及副本機制 34
3.2.2 Kafka高吞吐量實現(xiàn)方案 40
3.2.3 Kafka跨機房雙活方案 44
3.3 數(shù)據(jù)存儲 47
3.3.1 關系數(shù)據(jù)庫MySQL 48
3.3.2 列式存儲數(shù)據(jù)庫HBase 49
3.3.3 文檔型存儲數(shù)據(jù)庫MongoDB 51
3.3.4 圖數(shù)據(jù)庫Neo4j 54
3.3.5 內(nèi)容搜索數(shù)據(jù)庫Elasticsearch 57
3.4 服務遠程調(diào)用 59
3.4.1 RPC架構(gòu)及原理 59
3.4.2 Dubbo架構(gòu)及原理 60
3.4.3 gRPC架構(gòu)及原理 62
3.5 小結(jié) 63
第4章 高性能架構(gòu) 64
4.1 基礎概念 64
4.1.1 性能指標 64
4.1.2 利特爾法則 65
4.1.3 系統(tǒng)優(yōu)化分析 65
4.1.4 系統(tǒng)指標選擇 66
4.2 客戶端及網(wǎng)絡接入 66
4.2.1 瀏覽器訪問優(yōu)化 66
4.2.2 CDN緩存 68
4.2.3 反向代理 69
4.3 數(shù)據(jù)存儲 71
4.3.1 數(shù)據(jù)庫讀寫分離 71
4.3.2 數(shù)據(jù)庫分庫/分表 82
4.3.3 數(shù)據(jù)庫如何實現(xiàn)平滑擴容 86
4.3.4 NoSQL綜合解決方案 90
4.4 數(shù)據(jù)緩存 95
4.4.1 適合做緩存的場景 95
4.4.2 緩存穿透及解決方案 95
4.4.3 緩存雪崩及解決方案 97
4.4.4 緩存擊穿及解決方案 97
4.4.5 如何保障緩存與數(shù)據(jù)庫數(shù)據(jù)的一致性 100
4.5 業(yè)務邏輯 103
4.5.1 異步處理 103
4.5.2 消息隊列 106
4.6 架構(gòu)模式與負載均衡 106
4.6.1 多進程并發(fā)模式與多線程并發(fā)模式 107
4.6.2 阻塞與非阻塞I/O模式 107
4.6.3 負載均衡架構(gòu) 109
4.7 小結(jié) 110
第5章 高可用架構(gòu) 111
5.1 分布式系統(tǒng)的幾個理論 111
5.1.1 CAP理論 111
5.1.2 BASE理論 114
5.2 數(shù)據(jù)存儲層 116
5.2.1 雙機架構(gòu) 116
5.2.2 數(shù)據(jù)多副本 118
5.3 業(yè)務邏輯層 122
5.3.1 有狀態(tài)和無狀態(tài) 122
5.3.2 服務治理 124
5.3.3 服務降級 125
5.3.4 服務限流 130
5.4 多機房架構(gòu) 133
5.4.1 多機房的幾種架構(gòu) 133
5.4.2 多機房多活架構(gòu) 138
5.4.3 多機房流量分發(fā) 141
5.5 小結(jié) 143
第6章 可擴展架構(gòu) 144
6.1 可擴展的幾個維度 145
6.1.1 橫向擴展 145
6.1.2 垂直擴展 146
6.1.3 縱深擴展 147
6.2 可擴展架構(gòu)的實現(xiàn) 148
6.2.1 反向代理層 148
6.2.2 接入層 149
6.2.3 業(yè)務邏輯層 150
6.2.4 數(shù)據(jù)緩存層 152
6.2.5 數(shù)據(jù)存儲層 152
6.3 幾種典型可擴展架構(gòu) 153
6.3.1 分層架構(gòu) 153
6.3.2 服務化架構(gòu) 153
6.3.3 單元化架構(gòu) 154
6.4 小結(jié) 155
第7章 可維護架構(gòu) 156
7.1 系統(tǒng)監(jiān)控工具 156
7.1.1 Zabbix監(jiān)控系統(tǒng)介紹 156
7.1.2 Prometheus介紹 158
7.1.3 中間件監(jiān)控系統(tǒng)介紹 159
7.2 業(yè)務日志的監(jiān)控及分析 162
7.2.1 日志采集及清洗 163
7.2.2 日志的傳輸及存儲 165
7.2.3 日志查詢及可視化 166
7.3 業(yè)務數(shù)據(jù)的安全監(jiān)控及分析 167
7.3.1 數(shù)據(jù)安全防護方案 167
7.3.2 數(shù)據(jù)授權(quán)及審計系統(tǒng) 168
7.3.3 數(shù)據(jù)血緣追蹤 169
7.4 小結(jié) 170
第三部分 架構(gòu)實踐案例
第8章 賬號系統(tǒng) 173
8.1 系統(tǒng)整體架構(gòu) 173
8.1.1 注冊服務 173
8.1.2 認證服務 175
8.1.3 授權(quán)服務 176
8.2 關鍵問題及解決方案 177
8.2.1 如何解決會話粘連問題 177
8.2.2 如何實現(xiàn)數(shù)據(jù)一致性 181
8.2.3 如何實現(xiàn)安全降級 183
8.3 小結(jié) 184
第9章 秒殺系統(tǒng) 185
9.1 系統(tǒng)整體架構(gòu) 185
9.1.1 接入網(wǎng)關 186
9.1.2 訂單及庫存服務 187
9.1.3 支付服務 189
9.2 關鍵問題及解決方案 190
9.2.1 如何優(yōu)化流量金字塔模型 190
9.2.2 如何解決并發(fā)場景下的庫存扣減一致性問題 191
9.2.3 如何提升熱點賬戶的沖扣性能 193
9.3 小結(jié) 197
第 10章 消息推送系統(tǒng) 198
10.1 系統(tǒng)整體架構(gòu) 198
10.1.1 業(yè)務接入層 199
10.1.2 通道層 200
10.1.3 客戶端層 200
10.2 關鍵問題及解決方案 200
10.2.1 如何實現(xiàn)過載保護 201
10.2.2 如何提升消息分發(fā)性能 202
10.2.3 如何解決海量消息推送明細的存儲問題 203
10.2.4 如何降低推送的客戶端功耗 203
10.2.5 如何解決消息重復推送問題 204
10.2.6 如何解決海量長連接問題 205
10.2.7 如何解決客戶端消息偽造問題 206
10.3 小結(jié) 206
第 11章 區(qū)塊鏈系統(tǒng) 207
11.1 系統(tǒng)整體架構(gòu)及優(yōu)化 207
11.1.1 接入層 208
11.1.2 池化層及指令處理層 210
11.1.3 網(wǎng)絡層 213
11.1.4 存儲層 215
11.2 小結(jié) 216