分布式系統(tǒng)架構(gòu):技術(shù)棧詳解與快速進(jìn)階
定 價(jià):89 元
叢書(shū)名:架構(gòu)師書(shū)庫(kù)
- 作者:張程
- 出版時(shí)間:2020/6/1
- ISBN:9787111655909
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP316.4
- 頁(yè)碼:0
- 紙張:
- 版次:
- 開(kāi)本:16開(kāi)
內(nèi)容簡(jiǎn)介
本書(shū)從全棧角度講解了分布式系統(tǒng)涉及的各項(xiàng)主要技術(shù),從原理剖析、應(yīng)用場(chǎng)景和實(shí)踐案例3個(gè)維度展開(kāi),是作者多年分布式系統(tǒng)研發(fā)和架構(gòu)經(jīng)驗(yàn)的總結(jié)。
從前端到后端、從高效交互到負(fù)載均衡、從網(wǎng)絡(luò)傳輸?shù)絎eb服務(wù)器、從高并發(fā)到高可用……本書(shū)囊括了分布式系統(tǒng)的整個(gè)技術(shù)體系,內(nèi)容詳實(shí)、結(jié)構(gòu)清晰,能幫助讀者理解和掌握分布式系統(tǒng)架構(gòu)設(shè)計(jì)的難點(diǎn)和調(diào)優(yōu)方案。
全書(shū)一共10章,具體內(nèi)容如下:
第1章介紹了分布式架構(gòu)的理念、目標(biāo)、作用,以及架構(gòu)和設(shè)計(jì)中的難點(diǎn);
第2章講解了分布式架構(gòu)中前端和后端的交互方式、交互難點(diǎn)、高效交互調(diào)優(yōu);
第3章講解了分布式環(huán)境下網(wǎng)絡(luò)傳輸?shù)倪^(guò)程、難點(diǎn)、性能調(diào)優(yōu);
第4章講解了Nginx的負(fù)載均衡、頁(yè)面緩存、限流、高可用、性能調(diào)優(yōu);
第5章講解了Varnish的HTTP加速、數(shù)據(jù)緩存、緩存策略、高可用、性能調(diào)優(yōu);
第6章講解了Tomcat的原理、加載機(jī)制、安全管理、高可用集群、性能優(yōu)化;
第7章講解了分布式環(huán)境中高并發(fā)的問(wèn)題,通過(guò)多種技術(shù)方案,如緩存、消息隊(duì)列、分布式鎖等方式去優(yōu)化和處理,提高系統(tǒng)整體的吞吐量;
第8章介紹了普通事務(wù)與分布式事務(wù)的差異性,以及分布式事務(wù)的多種處理方式;
第9章講解了如何通過(guò)高效索引優(yōu)化、高可用的技術(shù)方案讓MySQL能夠提供更高效的數(shù)據(jù)庫(kù)服務(wù);
第10章講解了分布式環(huán)境中的高可用,即如何通過(guò)容量預(yù)估、全鏈路壓測(cè)、容災(zāi)設(shè)計(jì)來(lái)提高系統(tǒng)整體的可用性和健壯性。
前 言
第1章 分布式架構(gòu)介紹 1
1.1 分布式架構(gòu)發(fā)展過(guò)程 2
1.2 分布式架構(gòu)設(shè)計(jì)理念和目標(biāo) 6
1.2.1 設(shè)計(jì)理念 6
1.2.2 設(shè)計(jì)目標(biāo) 7
1.3 分布式架構(gòu)應(yīng)用場(chǎng)景 10
1.4 分布式架構(gòu)設(shè)計(jì)難點(diǎn) 10
1.4.1 網(wǎng)絡(luò)因素 10
1.4.2 服務(wù)可用性 11
1.4.3 數(shù)據(jù)一致性 12
1.5 分布式架構(gòu)解決痛點(diǎn) 13
1.6 本章小結(jié) 14
第2章 分布式架構(gòu)前后端交互 15
2.1 前后端交互發(fā)展過(guò)程 15
2.1.1 傳統(tǒng)交互模式 16
2.1.2 前后端分離交互模式 19
2.1.3 整體交互 22
2.2 前后端交互方式 22
2.2.1 工作流程 22
2.2.2 交互常見(jiàn)狀態(tài)碼 29
2.3 前后端交互難點(diǎn) 30
2.4 前后端交互優(yōu)化 32
2.5 案例講解 37
2.6 本章小結(jié) 40
第3章 分布式架構(gòu)網(wǎng)絡(luò)傳輸 41
3.1 網(wǎng)絡(luò)傳輸協(xié)議 41
3.2 網(wǎng)絡(luò)傳輸調(diào)用過(guò)程 46
3.2.1 協(xié)議概述 46
3.2.2 傳輸過(guò)程 48
3.3 網(wǎng)絡(luò)傳輸優(yōu)化 52
3.4 本章小結(jié) 54
第4章 分布式架構(gòu)Nginx 55
4.1 Nginx工作原理 55
4.2 Nginx源碼編譯安裝 57
4.3 Nginx配置 62
4.4 Nginx代理&負(fù)載均衡 64
4.4.1 正向代理 66
4.4.2 反向代理 66
4.4.3 動(dòng)靜分離 68
4.4.4 負(fù)載均衡策略 69
4.5 Nginx緩存 74
4.6 Nginx限流 76
4.7 Nginx屏蔽 79
4.8 Nginx優(yōu)化 79
4.8.1 優(yōu)化思路 79
4.8.2 核心配置優(yōu)化 79
4.9 Nginx高可用 82
4.10 本章小結(jié) 86
第5章 分布式架構(gòu)Varnish 87
5.1 Varnish工作原理 87
5.2 Varnish源碼編譯安裝 89
5.3 Varnish配置 92
5.4 Varnish核心指令 98
5.4.1 Varnish核心指令之backend 98
5.4.2 Varnish核心指令之director 98
5.5 Varnish緩存 102
5.5.1 Varnish緩存狀態(tài) 102
5.5.2 Varnish緩存管理 104
5.6 Varnish處理策略 105
5.6.1 pass 106
5.6.2 pipe 106
5.6.3 lookup 107
5.7 Varnish健康檢查 107
5.8 Varnish優(yōu)化 109
5.8.1 Varnish優(yōu)化思路 109
5.8.2 Varnish優(yōu)化講解 109
5.9 Varnish高可用 111
5.10 本章小結(jié) 116
第6章 分布式架構(gòu)Tomcat 117
6.1 Tomcat原理 117
6.2 Tomcat生命周期 123
6.3 Tomcat源碼編譯安裝 124
6.4 Tomcat目錄結(jié)構(gòu) 126
6.4.1 bin目錄 126
6.4.2 conf目錄 127
6.4.3 lib目錄 128
6.4.4 logs目錄 129
6.4.5 webapps目錄 129
6.5 Tomcat加載過(guò)程 130
6.5.1 Bootstrap類初始化 130
6.5.2 Bootstrap啟動(dòng) 132
6.6 Tomcat安全 135
6.6.1 配置調(diào)整 135
6.6.2 安全策略 136
6.6.3 SSL傳輸安全 136
6.7 Tomcat集群 137
6.7.1 集群組件實(shí)現(xiàn) 138
6.7.2 集群配置 139
6.8 JVM 142
6.8.1 Class文件結(jié)構(gòu) 143
6.8.2 類的裝載、連接和初始化 145
6.8.3 JVM的內(nèi)存分配 148
6.8.4 JVM執(zhí)行引擎 151
6.8.5 垃圾回收 152
6.9 Tomcat性能調(diào)優(yōu) 158
6.9.1 性能測(cè)試 158
6.9.2 性能優(yōu)化 162
6.10 本章小結(jié) 167
第7章 分布式架構(gòu)高并發(fā) 168
7.1 高并發(fā)使用場(chǎng)景 169
7.2 高并發(fā)難點(diǎn) 171
7.2.1 高并發(fā)期間如何避免產(chǎn)生臟數(shù)據(jù) 171
7.2.2 當(dāng)出現(xiàn)臟數(shù)據(jù)后如何處理 171
7.2.3 高并發(fā)期間如何節(jié)約帶寬 172
7.3 高并發(fā)之緩存 174
7.3.1 Redis介紹 174
7.3.2 Redis原理 175
7.3.3 Redis安裝編譯 176
7.3.4 Redis數(shù)據(jù)結(jié)構(gòu) 178
7.3.5 Redis持久化 181
7.3.6 Redis事務(wù) 183
7.3.7 Redis分布式鎖 186
7.3.8 Redis任務(wù)隊(duì)列 189
7.3.9 Redis高并發(fā)處理常見(jiàn)問(wèn)題及解決方案 201
7.3.10 Redis高可用 211
7.3.11 Redis調(diào)優(yōu) 213
7.4 高并發(fā)之消息隊(duì)列 214
7.4.1 RocketMQ介紹 214
7.4.2 RocketMQ安裝編譯 217
7.4.3 RocketMQ應(yīng)用場(chǎng)景 221
7.4.4 RocketMQ路由中心 222
7.4.5 RocketMQ消息存儲(chǔ)結(jié)構(gòu) 224
7.4.6 RocketMQ刷盤和復(fù)制策略 226
7.4.7 RocketMQ消息隊(duì)列 227
7.4.8 RocketMQ高并發(fā)處理常見(jiàn)問(wèn)題及解決方案 238
7.4.9 RocketMQ集群 240
7.4.10 RocketMQ調(diào)優(yōu) 240
7.5 高并發(fā)優(yōu)化 242
7.5.1 優(yōu)化思路 242
7.5.2 優(yōu)化方案 243
7.6 高并發(fā)經(jīng)典案例 245
7.7 本章小結(jié) 249
第8章 分布式架構(gòu)事務(wù) 250
8.1 分布式事務(wù)介紹 251
8.1.1 本地事務(wù) 251
8.1.2 全局事務(wù) 253
8.1.3 兩階段提交 254
8.1.4 分布式事務(wù) 255
8.1.5 小結(jié) 255
8.2 分布式事務(wù)概論 256
8.2.1 CAP定理 256
8.2.2 BASE理論 257
8.3 分布式事務(wù)應(yīng)用場(chǎng)景 258
8.4 分布式事務(wù)難點(diǎn) 259
8.4.1 網(wǎng)絡(luò)因素 259
8.4.2 消息重復(fù)發(fā)送 260
8.4.3 CAP定理選擇 262
8.5 分布式事務(wù)解決方案 262
8.5.1 最大努力通知 263
8.5.2 TCC事務(wù)補(bǔ)償 273
8.5.3 消息一致性 284
8.6 分布式事務(wù)案例講解 295
8.7 本章小結(jié) 297
第9章 分布式架構(gòu)MySQL 298
9.1 MySQL運(yùn)行原理 299
9.2 MySQL編譯啟動(dòng) 304
9.3 MySQL事務(wù) 307
9.3.1 事務(wù)特性 307
9.3.2 隔離級(jí)別 308
9.3.3 死鎖 308
9.3.4 事務(wù)日志 309
9.4 MySQL存儲(chǔ)引擎 310
9.4.1 概述 310
9.4.2 InnoDB 311
9.4.3 MyISAM 313
9.5 MySQL之SQL操作 314
9.5.1 SQL介紹 314
9.5.2 庫(kù) 316
9.5.3 表 316
9.6 MySQL索引 317
9.6.1 索引概述 317
9.6.2 數(shù)據(jù)結(jié)構(gòu) 318
9.6.3 索引分類 319
9.6.4 創(chuàng)建索引 319
9.7 MySQL備份 321
9.7.1 備份概述 321
9.7.2 備份類型 321
9.7.3 備份內(nèi)容 322
9.8 MySQL難點(diǎn) 323
9.8.1 死鎖 323
9.8.2 連接數(shù)過(guò)多 325
9.8.3 主從復(fù)制延遲 325
9.8.4 CPU飆高 326
9.8.5 索引效率 326
9.9 MySQL性能優(yōu)化 326
9.9.1 優(yōu)化思路 326
9.9.2 優(yōu)化過(guò)程 327
9.10 MySQL集群 331
9.11 本章小結(jié) 333
第10章 分布式架構(gòu)高可用 334
10.1 高可用概述及難點(diǎn) 334
10.2 高可用涉及內(nèi)容 336
10.3 高可用具體應(yīng)用 344
10.4 高可用案例講解 345
10.5 本章小結(jié) 346