大型網站架構實戰

梁嘉禎

  • 出版商: 機械工業
  • 出版日期: 2022-03-01
  • 定價: $599
  • 售價: 7.5$449
  • 語言: 簡體中文
  • 頁數: 338
  • 裝訂: 平裝
  • ISBN: 7111700597
  • ISBN-13: 9787111700593
  • 相關分類: 雲端運算
  • 立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

本書從大型網站架構的發展歷程出發,逐步深入介紹大型網站架構的各個部分,並在最後配合實戰案例,
詳細介紹大型網站架構需要關注的問題及其解決方法,讓讀者不但可以消除對大型網站架構的神秘感,
而且還可以對大型網站架構有更加深入的理解。
本書共10章,分為4篇。
第1篇“大型網站架構的發展與面臨的挑戰”,主要介紹大型網站業務和架構的發展,以及大型網站架構面臨的挑戰;
第2篇“大型網站架構的技術細節”,主要介紹前端架構、後端架構、雲計算服務架構和整體架構等內容;
第3篇“大型網站架構實戰案例”,主要介紹單點登錄系統架構設計、媒體庫管理系統架構設計和直播系統架構設計的相關內容;
第4篇“未來架構的設想”,主要介紹作者對未來架構的一些設想和看法。
本書從實際問題出發,問題與技術相呼應,一步一步地剖析和還原大型網站架構設計,內容通俗易懂,
實用性強,特別適合大型網站架構的入門與進階讀者閱讀,也適合其他對大型網站架構和雲計算感興趣的讀者閱讀。

目錄大綱

前言
第1篇 大型網站架構的發展與面臨的挑戰
第1章 大型網站業務和架構的發展 2
1.1 大型網站的業務演變 2
1.1.1 靜態網站的出現 2
1.1.2 動態網站的出現 3
1.1.3 大型網站系統的出現 4
1.1.4 大型雲計算網站系統的出現 6
1.1.5 大型網站的未來 7
1.2 大型網站架構的發展 8
1.2.1 動態網頁時代 8
1.2.2 B/S架構網站的崛起 8
1.2.3 CDN加速網站響應 10
1.2.4 應用和數據分離 11
1.2.5 非關係型數據庫和關係型數據庫並存 11
1.2.6 集群化 12
1.2.7 分布式趨勢 13
1.2.8 微服務 15
1.2.9 大型網站架構的未來 15
1.3 小結 16
第2章 大型網站架構面臨的挑戰 17
2.1 大型網站架構的基本問題 17
2.1.1 業務架構面臨的挑戰 17
2.1.2 技術架構面臨的挑戰 20
2.1.3 業務架構和技術架構的相互成全 21
2.2 業務架構的基本思路 21
2.2.1 遞進思想 22
2.2.2 版本計劃逐漸完善 24
2.2.3 持續優化,推陳出新 25
2.3 技術架構的基本思路 26
2.3.1 分層思想 26
2.3.2 IaaS、PaaS和SaaS分層管理 27
2.3.3 前端、後端和雲計算服務分層開發 28
2.4 大型網站技術架構的核心問題 30
2.4.1 性能問題 30
2.4.2 可用性問題 30
2.4.3 伸縮性問題 31
2.4.4 擴展性問題 31
2.4.5 安全性問題 32
2.5 小結 32
第2篇 大型網站架構的技術細節
第3章 前端架構 34
3.1 前端的工作原理 34
3.1.1 Web服務器搭建 34
3.1.2 構造一個簡單的網頁 38
3.1.3 前端網頁的工作原理 41
3.2 前端架構需要解決的問題 47
3.2.1 規整化概述 47
3.2.2 適配性和兼容性概述 49
3.2.3 模塊化概述 50
3.2.4 單頁應用概述 51
3.3 規整化 53
3.3.1 編碼規範 53
3.3.2 JavaScript庫 59
3.3.3 組件工具箱 61
3.3.4 框架 64
3.4 適配性和兼容性 71
3.4.1 響應式佈局 71
3.4.2 整體佈局 73
3.4.3 模塊佈局 77
3.4.4 適配性測試 78
3.4.5 瀏覽器兼容 79
3.5 模塊化 81
3.5.1 模塊化的方法 82
3.5.2 現今前端模塊化的困局 86
3.5.3 自研框架Trick 87
3.6 單頁應用 88
3.6.1 單頁應用用到的方法 88
3.6.2 單頁應用的發展趨勢 90
3.7 小結 91
第4章 後端架構 92
4.1 後端的工作原理 92
4.1.1 後端開發語言及框架 92
4.1.2 搭建Web應用服務器 94
4.1.3 構造一個簡單的後端應用程序 105
4.1.4 後端應用程序的工作原理 114
4.2 後端架構需要解決的問題 120
4.2.1 規整化概述 121
4.2.2 數據庫概述 122
4.2.3 非關係型數據庫概述 122
4.2.4 整合其他應用程序 123
4.3 規整化 124
4.3.1 接口設計 124
4.3.2 編碼規範 132
4.3.3 集中配置 140
4.3.4 Cookie和Session 145
4.3.5 應用拆分和協調 148
4.3.6 日誌 149
4.3.7 自研框架Once 159
4.4 數據庫 161
4.4.1 數據庫對比 161
4.4.2 數據庫的工作原理 162
4.4.3 數據庫設計 164
4.4.4 數據庫操作框架 168
4.4.5 數據庫事務 175
4.4.6 分布式事務 178
4.5 非關係型數據庫 188
4.5.1 鍵值存儲非關係型數據庫 188
4.5.2 列存儲非關係型數據庫 190
4.5.3 文檔型非關係型數據庫 191
4.5.4 圖形非關係型數據庫 191
4.6 小結 192
第5章 雲計算服務架構 193
5.1 雲計算服務的工作原理 193
5.1.1 雲計算服務的應用場景 193
5.1.2 雲計算開發語言及其框架 194
5.1.3 雲計算服務軟件的工作原理 195
5.2 雲計算服務架構需要解決的問題 200
5.2.1 雲計算服務軟件基礎框架構建概述 201
5.2.2 任務池與指令池的搭建和使用概述 202
5.2.3 進度數據池與狀態數據池的搭建和使用概述 202
5.2.4 監控軟件的構造概述 202
5.3 雲計算服務軟件基礎框架的構建 203
5.3.1 進程與線程 203
5.3.2 線程同步 205
5.3.3 線程模型 211
5.3.4 軟件結構 218
5.4 任務池與指令池的搭建和使用 219
5.4.1 消息隊列 219
5.4.2 RabbitMQ消息隊列 221
5.4.3 任務池的搭建與使用 232
5.4.4 指令池的搭建與使用 234
5.5 進度數據池與狀態數據池的搭建和使用 237
5.5.1 公共數據空間 237
5.5.2 Redis數據庫 239
5.5.3 進度數據池的搭建與使用 247
5.5.4 狀態數據池的搭建與使用 248
5.6 監控軟件的構造 249
5.6.1 軟件結構 249
5.6.2 Supervisor監控軟件 253
5.7 小結 254
第6章 整體架構 255
6.1 網站系統的基本結構 255
6.1.1 前端部分的基本結構 255
6.1.2 後端部分的基本結構 257
6.1.3 雲計算服務部分的基礎結構 258
6.1.4 網站系統的基本結構 259
6.2 整體架構需要解決的問題 260
6.2.1 性能概述 260
6.2.2 可用性概述 260
6.2.3 伸縮性概述 261
6.2.4 擴展性概述 261
6.2.5 安全性概述 261
6.3 性能 262
6.3.1 性能指標 262
6.3.2 壓力測試 266
6.3.3 性能調優的基本思路 271
6.3.4 服務器性能調優 274
6.3.5 Nginx調優 280
6.3.6 CDN加速 283
6.3.7 瀏覽器訪問頁面的過程優化 284
6.3.8 Tomcat調優 285
6.3.9 緩存與靜態文件 287
6.3.10 數據庫性能優化 288
6.3.11 數據庫集群 289
6.3.12 分布式文件系統 293
6.3.13 集群部署與分布式部署 294
6.4 可用性 297
6.4.1 服務器的定期維護與監控 297
6.4.2 服務器熱備份 298
6.4.3 日誌機制 299
6.4.4 環境分離與灰度發佈 299
6.5 伸縮性 300
6.5.1 伸縮指標與伸縮策略 300
6.5.2 動態彈性伸縮的局限 300
6.6 安全性 301
6.6.1 安全堡壘機 301
6.6.2 接口鑒權 302
6.6.3 SQL盲注 302
6.6.4 跨域 303
6.7 小結 305
第3篇 大型網站架構實戰案例
第7章 單點登錄系統架構設計 308
7.1 單點登錄系統的關鍵問題 308
7.1.1 為什麼需要單點登錄系統 308
7.1.2 單點登錄系統需要解決的關鍵問題 309
7.2 單點登錄系統的詳細架構設計 310
7.2.1 統一的登錄與註冊入口 310
7.2.2 與其他子系統共享用戶登錄信息 311
7.2.3 集中管理用戶的基本信息 312
7.3 小結 313
第8章 媒體庫管理系統架構設計 314
8.1 媒體庫管理系統的關鍵問題 314
8.1.1 為什麼需要媒體庫管理系統 314
8.1.2 媒體庫管理系統需要解決的關鍵問題 315
8.2 媒體庫管理系統的詳細架構設計 315
8.2.1 統一的媒體文件上傳入口和資源選擇機制 316
8.2.2 媒體文件的刪除機制 317
8.2.3 提供自動處理媒體文件等功能 318
8.3 小結 319
第9章 直播系統架構設計 320
9.1 直播系統的關鍵問題 320
9.1.1 為什麼需要直播系統 320
9.1.2 直播系統需要解決的關鍵問題 321
9.2 直播系統的詳細架構設計 321
9.2.1 明確直播場景 321
9.2.2 基礎系統架構 322
9.2.3 直播流接收 323
9.2.4 直播流處理 323
9.2.5 直播觀看 325
9.3 小結 326
第4篇 未來架構的設想
第10章 未來架構 328
10.1 理解架構 328
10.1.1 架構是什麼 328
10.1.2 頂層架構 332
10.1.3 架構與技術 333
10.2 軟件行業的發展 334
10.2.1 軟件行業的現狀 334
10.2.2 軟件行業的發展方向 334
10.2.3 不斷發展的結局 334
10.3 未來架構的方向 335
10.3.1 人力效率增加 335
10.3.2 人力資本轉化成物力資本 336
10.3.3 物力資本彙聚成生態 337
10.4 小結 338