高性能架構(gòu)之道:分布式、并發(fā)編程、數(shù)據(jù)庫調(diào)優(yōu)、緩存設(shè)計、IO模型、前端優(yōu)化、高可用
定 價:89 元
- 作者:易哥
- 出版時間:2021/3/1
- ISBN:9787121404870
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.1
- 頁碼:292
- 紙張:
- 版次:01
- 開本:16開
本書是一本理論聯(lián)系實際的軟件架構(gòu)設(shè)計指導(dǎo)書,旨在幫助讀者完成高性能軟件系統(tǒng)的架構(gòu)設(shè)計工作。書中涉及分布式、并發(fā)編程、數(shù)據(jù)庫調(diào)優(yōu)、緩存、IO、前端性能優(yōu)化等方面的理論知識,并在理論知識的基礎(chǔ)上推導(dǎo)其實踐技巧。本書最后還運用書中知識完成了一個實際軟件項目的架構(gòu)設(shè)計工作。本書適合軟件架構(gòu)師、工程師、學(xué)生閱讀,以幫助其完善軟件開發(fā)知識體系和提升其軟件架構(gòu)設(shè)計能力。
易哥(筆名),畢業(yè)于浙江大學(xué)、山東大學(xué),高級軟件系統(tǒng)架構(gòu)師、網(wǎng)絡(luò)工程師、數(shù)據(jù)庫工程師、軟件測試工程師、注冊電氣工程師。在校成績前1%,獲得國家獎學(xué)金兩次,一等獎學(xué)金四次,科技創(chuàng)新大賽一等獎三次,以及五四青年科學(xué)獎等。主要科研方向為機器學(xué)習(xí)、分布式算法、容錯算法在無線傳感網(wǎng)絡(luò)中的應(yīng)用,相關(guān)論文獲得IEEE通信協(xié)會最佳論文獎。曾擔(dān)任網(wǎng)站技術(shù)部門負責(zé)人,具有豐富的互聯(lián)網(wǎng)開發(fā)經(jīng)驗。先后設(shè)計和實現(xiàn)了眾多系統(tǒng)和平臺,也是活躍的開源開發(fā)者。現(xiàn)專注軟件系統(tǒng)架構(gòu)設(shè)計與后端開發(fā),著有書籍《通用源碼閱讀指導(dǎo)書》《高性能架構(gòu)之道》等。
第1章 高性能架構(gòu) 001
1.1 軟件架構(gòu) 001
1.2 軟件的質(zhì)量 003
1.3 高性能概述 004
1.4 軟件性能指標(biāo) 005
1.4.1 吞吐量 006
1.4.2 并發(fā)數(shù) 006
1.4.3 平均響應(yīng)時間 007
1.4.4 可靠性指標(biāo) 008
1.5 性能指標(biāo)之間的關(guān)系 009
1.5.1 并發(fā)數(shù)對吞吐量的影響 009
1.5.2 并發(fā)數(shù)對平均響應(yīng)時間的影響 011
1.5.3 平均響應(yīng)時間對并發(fā)數(shù)的影響 012
1.5.4 可靠性指標(biāo)與其他指標(biāo)的關(guān)系 013
1.6 高性能架構(gòu)總結(jié) 013
第2章 分流設(shè)計 014
2.1 內(nèi)容分發(fā)網(wǎng)絡(luò) 014
2.1.1 內(nèi)容分發(fā)網(wǎng)絡(luò)的結(jié)構(gòu) 015
2.1.2 內(nèi)容分發(fā)網(wǎng)絡(luò)的原理 017
2.2 多地址直連 019
2.3 反向代理 021
第3章 服務(wù)并行設(shè)計 026
3.1 并行與并發(fā) 026
3.2 集群系統(tǒng) 028
3.2.1 無狀態(tài)的節(jié)點集群 028
3.2.2 單一服務(wù)節(jié)點集群 029
3.2.3 信息共享的節(jié)點集群 031
3.2.4 信息一致的節(jié)點集群 032
3.3 分布式系統(tǒng) 034
3.4 微服務(wù)系統(tǒng) 036
第4章 運算并發(fā) 038
4.1 多進程 038
4.2 多線程 039
4.2.1 線程的狀態(tài)及轉(zhuǎn)換 039
4.2.2 多線程的應(yīng)用場景 041
4.2.3 多線程的創(chuàng)建 042
4.2.4 線程池 046
4.2.5 多線程資源協(xié)作 050
4.2.6 多線程進度協(xié)作 056
4.3 多協(xié)程 069
4.4 運算并發(fā)總結(jié) 072
第5章 輸入輸出設(shè)計 074
5.1 概念梳理 074
5.1.1 同步與異步 074
5.1.2 阻塞與非阻塞 075
5.2 IO模型 077
5.3 IO模型的層級關(guān)系 078
5.4 阻塞式IO模型 079
5.5 非阻塞式IO模型 081
5.6 信號驅(qū)動式IO模型 082
5.7 復(fù)用式IO模型 083
5.8 異步式IO模型 086
5.9 輸入輸出模型總結(jié) 088
第6章 數(shù)據(jù)庫設(shè)計與優(yōu)化 090
6.1 數(shù)據(jù)庫設(shè)計概述 090
6.2 關(guān)系型數(shù)據(jù)庫設(shè)計 091
6.2.1 設(shè)計范式介紹 093
6.2.2 反范式設(shè)計 101
6.3 索引原理與優(yōu)化 102
6.3.1 索引的原理 103
6.3.2 索引生效分析 107
6.3.3 索引的使用 109
6.3.4 索引的利弊 116
6.4 數(shù)據(jù)庫引擎 116
6.5 數(shù)據(jù)庫鎖 117
6.5.1 樂觀鎖 118
6.5.2 悲觀鎖 119
6.6 死鎖 120
6.7 事務(wù) 122
6.7.1 事務(wù)并發(fā)導(dǎo)致的問題 123
6.7.2 事務(wù)隔離級別 124
6.7.3 自建事務(wù) 126
6.8 巨量數(shù)據(jù)的優(yōu)化 128
6.8.1 表分區(qū) 128
6.8.2 分庫分表 132
6.8.3 讀寫分離 134
6.9 非傳統(tǒng)數(shù)據(jù)庫 138
6.9.1 內(nèi)存數(shù)據(jù)庫 139
6.9.2 列存儲數(shù)據(jù)庫 140
6.9.3 面向?qū)ο髷?shù)據(jù)庫 140
6.9.4 文檔數(shù)據(jù)庫 140
6.9.5 圖數(shù)據(jù)庫 141
6.10 數(shù)據(jù)庫中間件 141
第7章 緩存設(shè)計 143
7.1 緩存的收益 143
7.2 緩存的鍵與值 145
7.2.1 緩存的鍵 145
7.2.2 緩存的值 149
7.3 緩存的更新機制 151
7.3.1 時效性更新機制 151
7.3.2 主動更新機制 152
7.4 緩存的清理機制 155
7.4.1 時效式清理 156
7.4.2 數(shù)目閾值式清理 157
7.4.3 非強引用式清理 161
7.4.4 清理策略使用實踐 164
7.5 緩存的風(fēng)險點 165
7.5.1 緩存穿透 165
7.5.2 緩存雪崩 166
7.5.3 緩存擊穿 166
7.5.4 緩存預(yù)熱 167
7.6 緩存的位置 168
7.6.1 客戶端緩存 169
7.6.2 靜態(tài)緩存 172
7.6.3 服務(wù)緩存 173
7.6.4 數(shù)據(jù)庫緩存 173
7.7 寫緩存 174
7.7.1 寫緩存的收益問題 175
7.7.2 寫緩存實踐 175
第8章 可靠性設(shè)計 177
8.1 軟件可靠性概述 177
8.2 軟件可靠性指標(biāo) 178
8.2.1 失效概率 178
8.2.2 失效強度 179
8.2.3 失效率 179
8.3 模塊連接方式與可靠性 179
8.3.1 串聯(lián)系統(tǒng)的可靠性 179
8.3.2 并聯(lián)系統(tǒng)的可靠性 180
8.3.3 冗余系統(tǒng)的可靠性 180
8.3.4 模塊連接方式的可靠性討論 181
8.4 軟件失效模型 181
8.5 可靠性設(shè)計 182
8.5.1 消除單點依賴 183
8.5.2 化串聯(lián)為并聯(lián) 183
8.5.3 采用集群 184
第9章 應(yīng)用保護 185
9.1 應(yīng)用保護概述 185
9.2 隔離 187
9.3 限流 189
9.3.1 時間窗限流法 189
9.3.2 漏桶限流法 190
9.3.3 令牌限流法 192
9.4 降級 193
9.5 熔斷 196
9.6 恢復(fù) 198
第10章 前端高性能 200
10.1 前端工作分析 200
10.1.1 前端加載過程 200
10.1.2 前端性能分析 201
10.2 資源下載優(yōu)化 203
10.2.1 資源壓縮 203
10.2.2 減少請求 205
10.2.3 資源緩存 210
10.3 頁面解析優(yōu)化 214
10.3.1 順應(yīng)解析流程 214
10.3.2 應(yīng)用新型前端框架 216
10.4 懶加載 216
10.5 預(yù)操作 217
第11章 架構(gòu)設(shè)計理論 219
11.1 軟件架構(gòu)風(fēng)格 219
11.1.1 管道過濾器架構(gòu)風(fēng)格 220
11.1.2 面向?qū)ο蠹軜?gòu)風(fēng)格 220
11.1.3 基于組件的架構(gòu)風(fēng)格 221
11.1.4 事件驅(qū)動架構(gòu)風(fēng)格 221
11.1.5 分層架構(gòu)風(fēng)格 221
11.1.6 C/S架構(gòu)風(fēng)格 222
11.1.7 三層C/S架構(gòu)風(fēng)格 223
11.1.8 B/S架構(gòu)風(fēng)格 224
11.2 軟件生命周期 225
11.2.1 需求階段 226
11.2.2 模型設(shè)計 227
11.2.3 概要設(shè)計 228
11.2.4 詳細設(shè)計 228
11.2.5 質(zhì)量指標(biāo)設(shè)計 229
11.2.6 方案預(yù)研 229
11.2.7 軟件開發(fā) 229
第12章 高性能架構(gòu)實踐 231
12.1 需求概述 231
12.2 權(quán)限系統(tǒng)的相關(guān)理論 234
12.2.1 權(quán)限模型 234
12.2.2 訪問控制方式 240
12.3 模型設(shè)計 241
12.3.1 模型調(diào)研 241
12.3.2 模型應(yīng)用 242
12.4 概要設(shè)計 249
12.5 數(shù)據(jù)層詳細設(shè)計 253
12.5.1 RBAC數(shù)據(jù)表的范式設(shè)計 253
12.5.2 RBAC數(shù)據(jù)表的反范式設(shè)計 254
12.5.3 RBAC數(shù)據(jù)表的最終設(shè)計 255
12.5.4 MatrixAuth管理類數(shù)據(jù)表設(shè)計 257
12.5.5 MatrixAuth的數(shù)據(jù)層結(jié)構(gòu) 259
12.6 緩存詳細設(shè)計 260
12.7 服務(wù)端詳細設(shè)計 261
12.7.1 數(shù)據(jù)源動態(tài)切換 261
12.7.2 數(shù)據(jù)冗余的一致性保證 263
12.7.3 服務(wù)端的操作接口 263
12.8 客戶端詳細設(shè)計 265
12.8.1 可控角色的權(quán)限驗證 265
12.8.2 自由角色的權(quán)限驗證 267
12.8.3 用戶信息、角色關(guān)聯(lián)信息推送 268
12.9 MatrixAuth項目實踐總結(jié) 268
12.9.1 MatrixAuth的高性能設(shè)計 268
12.9.2 需求完成度分析 270
12.9.3 MatrixAuth的使用簡介 270
參考文獻 273