架構(gòu)師修煉之道——思維、方法與實(shí)踐
定 價(jià):99 元
- 作者:張?jiān)迄i
- 出版時(shí)間:2020/9/1
- ISBN:9787121393808
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.5
- 頁碼:276
- 紙張:
- 版次:01
- 開本:16開
本書主要講解如何能夠做好互聯(lián)網(wǎng)架構(gòu)設(shè)計(jì),書中會(huì)詳盡介紹架構(gòu)的一些心得心法,不局限于具體的技術(shù)。大都是通用的技術(shù)意識和思維方法。書中會(huì)介紹作者在工作中遇到的實(shí)際案例和總結(jié)方法,闡述架構(gòu)設(shè)計(jì)中的一些方法論。如何能夠設(shè)計(jì)出穩(wěn)定、高可用的互聯(lián)網(wǎng)服務(wù)。希望通過本書的介紹,讓互聯(lián)網(wǎng)后臺(tái)的從業(yè)者,能夠受到些啟發(fā),早日成為架構(gòu)師,設(shè)計(jì)出更多更穩(wěn)定更高效的系統(tǒng)架構(gòu)。
從事互聯(lián)網(wǎng)后端研發(fā)工作十余年。曾就職于騰訊QQ后臺(tái)團(tuán)隊(duì),全程參與過多個(gè)大型系統(tǒng)的設(shè)計(jì)和開發(fā)。對設(shè)計(jì)高性能、高可用互聯(lián)網(wǎng)架構(gòu)有著豐富的經(jīng)驗(yàn)。專注于架構(gòu)設(shè)計(jì)、系統(tǒng)重構(gòu)、維護(hù)擴(kuò)展等方面的技術(shù)研究,總結(jié)相關(guān)知識,為團(tuán)隊(duì)提供技術(shù)解決方案和培養(yǎng)架構(gòu)人才。
目 錄
第一部分 架構(gòu)簡介
第1章 架構(gòu)簡介 2
1.1 架構(gòu)的定義 2
1.2 對架構(gòu)師的要求 4
1.3 互聯(lián)網(wǎng)架構(gòu)的挑戰(zhàn) 7
1.4 一切盡在控制 8
1.5 小結(jié) 10
第二部分 架構(gòu)設(shè)計(jì)的技術(shù)方法
第2章 切分與擴(kuò)展 16
2.1 切分 16
2.1.1 數(shù)據(jù)維度切分 16
2.1.2 邏輯維度切分 23
2.1.3 切分的優(yōu)點(diǎn) 24
2.2 擴(kuò)展 25
2.2.1 部署擴(kuò)展 25
2.2.2 升級擴(kuò)展 27
2.2.3 set模型 29
2.3 小結(jié) 31
第3章 主動(dòng)發(fā)現(xiàn) 33
3.1 日志 34
3.1.1 為什么要記日志 34
3.1.2 日志級別 35
3.1.3 日志類型 36
3.1.4 注意事項(xiàng) 38
3.2 監(jiān)控 40
3.3 主動(dòng)發(fā)現(xiàn)的監(jiān)控標(biāo)準(zhǔn) 43
3.3.1 系統(tǒng)層監(jiān)控 43
3.3.2 用戶側(cè)監(jiān)控 44
3.3.3 應(yīng)用層監(jiān)控 45
3.4 其他形式的監(jiān)控 47
3.5 小結(jié) 49
第4章 自動(dòng)化 52
4.1 自動(dòng)部署 54
4.1.1 準(zhǔn)備 54
4.1.2 實(shí)現(xiàn) 55
4.1.3 驗(yàn)證 57
4.2 自動(dòng)恢復(fù) 58
4.2.1 服務(wù)恢復(fù) 58
4.2.2 流量遷移 60
4.3 提升自動(dòng)化意識 63
4.4 其他場景 64
4.5 小結(jié) 66
第5章 灰度升級 67
5.1 策略 68
5.1.1 按照用戶身份執(zhí)行灰度策略 68
5.1.2 按照號段執(zhí)行灰度策略 69
5.1.3 按照命令號執(zhí)行灰度策略 70
5.1.4 按照時(shí)間執(zhí)行灰度策略 71
5.2 灰度部署方式 73
5.2.1 藍(lán)綠部署/發(fā)布 73
5.2.2 金絲雀發(fā)布 74
5.3 注意事項(xiàng) 75
5.3.1 數(shù)據(jù)采樣 75
5.3.2 及時(shí)回滾 76
5.3.3 周期完全 76
5.3.4 測試完全 77
5.3.5 充分驗(yàn)證 78
5.4 案例—系統(tǒng)遷移下線操作 79
5.4.1 驗(yàn)證和比對 79
5.4.2 回滾 80
5.5 小結(jié) 81
第6章 過載保護(hù) 82
6.1 過載的現(xiàn)象及原因 82
6.1.1 什么是過載 82
6.1.2 過載現(xiàn)象及原因分析 85
6.2 處理方式 86
6.2.1 隔離 87
6.2.2 限流 88
6.2.3 節(jié)流和防抖 94
6.2.4 動(dòng)態(tài)調(diào)節(jié) 95
6.2.5 盡早拒絕 96
6.2.6 調(diào)整緩沖區(qū)大小 97
6.2.7 減少重試 98
6.2.8 做好容量評估 98
6.3 小結(jié) 99
第7章 負(fù)載均衡 100
7.1 理論算法 100
7.1.1 基本輪詢 100
7.1.2 加權(quán)輪詢 102
7.1.3 隨機(jī)訪問 103
7.1.4 源地址Hash 104
7.1.5 最小連接數(shù) 105
7.1.6 映射分配 106
7.1.7 一致性Hash 107
7.2 動(dòng)態(tài)負(fù)載均衡 110
7.3 常用組件 111
7.3.1 DNS 111
7.3.2 Nginx 111
7.3.3 LVS 113
7.3.4 NAT模式 113
7.3.5 DR模式 114
7.3.6 IP Tunneling模式 115
7.3.7 SDK組件 117
7.4 實(shí)際案例—Web類業(yè)務(wù)負(fù)載均衡實(shí)現(xiàn) 117
7.5 小結(jié) 119
第8章 柔性 120
8.1 理論基礎(chǔ) 122
8.1.1 CAP定理 122
8.1.2 BASE理論 124
8.2 柔性的實(shí)現(xiàn)方法 126
8.2.1 產(chǎn)品角度 127
8.2.2 技術(shù)角度 128
8.3 驗(yàn)證方式 131
8.4 小結(jié) 132
第三部分 架構(gòu)思維意識
第9章 穩(wěn)定為王 137
9.1 控制因素 137
9.1.1 安全 137
9.1.2 變更 141
9.2 保障方法 144
9.2.1 合理拒絕 145
9.2.2 厘清主次關(guān)系 145
9.2.3 容量量化 147
9.2.4 預(yù)先準(zhǔn)備 148
9.2.5 注重監(jiān)控 149
9.2.6 敬畏之心 150
9.3 應(yīng)對異常 152
9.3.1 處理事故 152
9.3.2 管理預(yù)期 153
9.3.3 復(fù)盤總結(jié) 153
9.3.4 有效預(yù)防 153
9.3.5 謹(jǐn)慎變更 154
9.4 小結(jié) 155
第10章 完成比完美重要 156
10.1 先扛住再優(yōu)化 156
10.1.1 快速搶占市場 157
10.1.2 實(shí)現(xiàn)先于性能 157
10.1.3 需求可能修改 158
10.1.4 驗(yàn)證用戶行為 158
10.1.5 突發(fā)問題案例 158
10.2 最小可用,快速迭代 160
10.3 不要等待 160
10.4 接受不完美 161
10.4.1 分清主次 161
10.4.2 自動(dòng)化降級 162
10.4.3 代價(jià)最低 162
10.5 及時(shí)償還技術(shù)債務(wù) 163
10.5.1 定期重構(gòu) 164
10.5.2 及時(shí)清理 165
10.5.3 對技術(shù)有追求 167
10.6 小結(jié) 167
第11章 聚沙成塔 168
11.1 小而簡潔 168
11.2 擴(kuò)展能力 172
11.3 小結(jié) 173
第12章 自動(dòng)化思維 175
12.1 拒絕重復(fù) 175
12.1.1 時(shí)間成本 175
12.1.2 解決重復(fù) 176
12.2 工具系統(tǒng)化 178
12.3 小結(jié) 180
第13章 產(chǎn)品思維 181
13.1 體驗(yàn)業(yè)務(wù) 181
13.2 體驗(yàn)競品 182
13.3 揚(yáng)長避短 183
13.4 控制欲望 184
13.5 獻(xiàn)計(jì)獻(xiàn)策 185
13.6 反哺方案 185
13.7 小結(jié) 186
第四部分 善用工具
第14章 算法 189
14.1 樹狀數(shù)組 190
14.1.1 問題場景 190
14.1.2 排行榜實(shí)現(xiàn)及優(yōu)化方案 191
14.1.3 樹狀數(shù)組實(shí)現(xiàn)排行榜 191
14.1.4 樹狀數(shù)組優(yōu)化排行榜 195
14.2 多階Hash算法 196
14.2.1 原理 196
14.2.2 優(yōu)點(diǎn) 197
14.2.3 缺點(diǎn) 198
14.3 利用線性同余的一致性Hash算法 199
14.3.1 算法內(nèi)容 199
14.3.2 適用場景 199
14.3.3 實(shí)現(xiàn)原理 200
14.4 隨機(jī)數(shù)在互聯(lián)網(wǎng)業(yè)務(wù)中的應(yīng)用 203
14.4.1 隨機(jī)數(shù)的生成方法 203
14.4.2 誤用隨機(jī)數(shù)的場景 205
14.4.3 項(xiàng)目中用到隨機(jī)數(shù)的場景 207
14.5 小結(jié) 212
第15章 流程和文化 213
15.1 流程 213
15.1.1 需求階段 214
15.1.2 開發(fā)階段 215
15.1.3 測試階段 217
15.1.4 發(fā)布階段 219
15.1.5 運(yùn)營階段 220
15.1.6 管理機(jī)制 221
15.2 文化 222
15.3 小結(jié) 223
第五部分 案例剖析
第16章 架構(gòu)案例剖析 226
16.1 小型案例—統(tǒng)計(jì)用戶在線時(shí)長 226
16.1.1 需求描述 226
16.1.2 項(xiàng)目背景 227
16.1.3 需求分析 228
16.1.4 實(shí)現(xiàn)方案 228
16.1.5 案例總結(jié) 230
16.2 中型案例—抽獎(jiǎng)活動(dòng) 231
16.2.1 需求描述 231
16.2.2 需求分析 231
16.2.3 實(shí)現(xiàn)方案 232
16.2.4 整體架構(gòu)設(shè)計(jì) 238
16.2.5 案例總結(jié) 240
16.3 大型案例—短網(wǎng)址服務(wù) 241
16.3.1 需求描述 241
16.3.2 需求分析 241
16.3.3 需求一:內(nèi)部使用 243
16.3.4 需求二:大型互聯(lián)網(wǎng)服務(wù)方案 246
16.4 小結(jié) 256