-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
深入淺出大型網站架構設計 版權信息
- ISBN:9787121353970
- 條形碼:9787121353970 ; 978-7-121-35397-0
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
深入淺出大型網站架構設計 本書特色
為了幫助有一定編程基礎的讀者快速了解如何以職業標準開發一個網站,本書從架構設計的角度出發,涵蓋了以高性能、高可用、高并發等多個業內標準為目標的網站設計和建設手段,并在每個方面追本溯源,從理論方法到生產實踐,在力求簡明易懂、適用于盡可能多的場合的前提下深入到實踐中,為讀者提供實用操作指南。同時,本書對所有出現的概念都作了簡明扼要的解釋,并對介紹的手段和方案不僅解釋了如何做,也解釋了來源和選擇理由,使得讀者在理解內容并能應用的同時,也能理解這些手段背后的思路,將來亦可脫離書本,作出屬于自己的創新方案,真正做到了授人以魚不如授人以漁。
深入淺出大型網站架構設計 內容簡介
為了幫助有一定編程基礎的讀者快速了解如何以職業標準開發一個網站,本書從架構設計的角度出發,涵蓋了以高性能、高可用、高并發等多個業內標準為目標的網站設計和建設手段,并在每個方面追本溯源,從理論方法到生產實踐,在力求簡明易懂、適用于盡可能多的場合的前提下深入到實踐中,為讀者提供實用操作指南。同時,本書對所有出現的概念都作了簡明扼要的解釋,并對介紹的手段和方案不僅解釋了如何做,也解釋了來源和選擇理由,使得讀者在理解內容并能應用的同時,也能理解這些手段背后的思路,將來亦可脫離書本,作出屬于自己的創新方案,真正做到了授人以魚不如授人以漁。
深入淺出大型網站架構設計 目錄
第1 章 網站架構概述 1
1.1 網站的基本組件 1
1.2 網站業務規模增長帶來的問題 2
1.3 大型網站架構設計的目標和原則 4
1.3.1 高性能 4
1.3.2 高可用 5
1.3.3 伸縮性 6
1.3.4 擴展性 7
第2 章 大型網站架構設計的流程 9
2.1 需求分析 9
2.1.1 需求驅動的重要性 9
2.1.2 如何根據需求制定系統目標 10
2.2 方案設計 11
2.2.1 與架構設計原則相結合 11
2.2.2 設計多套備選方案 12
2.3 方案評估 13
第3 章 數據庫的選擇 15
3.1 關系數據庫 15
3.1.1 什么是關系數據庫 16
3.1.2 關系數據庫的優勢和應用場景 17
3.2 非關系數據庫 18
3.2.1 什么是非關系數據庫 18
3.2.2 非關系數據庫的優勢和應用場景 19
3.3 常見的關系數據庫產品 20
3.3.1 MySQL 20
3.3.2 MS SQL Server 21
3.3.3 Oracle 22
3.4 常見的非關系數據庫產品 22
3.4.1 MongoDB 23
3.4.2 DynamoDB 23
3.5 云數據庫 23
第4 章 數據庫優化:分庫分表 25
4.1 什么是分庫分表 25
4.1.1 分庫 25
4.1.2 分表 26
4.2 為什么要進行分庫分表 27
4.2.1 吞吐量 27
4.2.2 索引 27
4.2.3 備份 28
4.2.4 其他風險 28
4.3 實現分庫分表 28
4.3.1 垂直分庫分表 29
4.3.2 水平分庫分表 30
4.4 分庫分表帶來的問題 32
4.4.1 全局唯一ID 32
4.4.2 關系數據庫的部分操作 33
4.4.3 事務支持 33
第5 章 數據庫優化:讀寫分離 34
5.1 什么是讀寫分離 34
5.2 為什么要使用讀寫分離 35
5.2.1 何時需要使用讀寫分離 35
5.2.2 讀寫分離的好處 36
5.3 實現讀寫分離 37
5.3.1 中間件實現 37
5.3.2 應用層實現 38
5.4 讀寫分離帶來的問題 39
5.4.1 副本的實時性 39
5.4.2 副本實時性的解決方案 39
5.4.3 成本問題 40
第6 章 緩存 41
6.1 什么是緩存 41
6.2 緩存策略 42
6.2.1 LFU 緩存策略 42
6.2.2 LRU 緩存策略 43
6.2.3 緩存策略的優劣 43
6.3 緩存命中率 44
6.4 緩存的類型 44
6.4.1 客戶端緩存 44
6.4.2 CDN 緩存 45
6.4.3 應用緩存 45
6.4.4 基于分布式集群的緩存 45
6.5 分布式緩存 46
6.5.1 分布式緩存的應用場景 46
6.5.2 分布式緩存的架構設計 47
6.6 緩存的問題 47
6.6.1 緩存過熱 47
6.6.2 緩存穿透 48
6.6.3 緩存雪崩 48
6.7 常見的緩存系統 49
6.7.1 MemCached 49
6.7.2 Redis 49
第7 章 動靜分離 50
7.1 動靜分離 50
7.1.1 動態數據和靜態數據 50
7.1.2 動靜分離的概念 52
7.1.3 動靜分離的作用 53
7.2 拆分動態數據和靜態數據 55
7.2.1 識別動態數據和靜態數據 55
7.2.2 改造數據 56
7.2.3 改造數據要注意的問題 60
7.3 動靜分離的架構改造 62
7.3.1 動靜分離的緩存架構 62
7.3.2 瀏覽器緩存 63
7.3.3 CDN 緩存 64
7.3.4 Web 服務器緩存 65
7.3.5 分布式緩存 65
7.3.6 頁面組裝 66
第8 章 負載均衡 67
8.1 什么是負載均衡 67
8.1.1 負載均衡的概念 67
8.1.2 負載均衡的類型 69
8.1.3 有負載均衡的網站架構 69
8.1.4 反向代理 70
8.2 DNS 負載均衡 72
8.2.1 DNS 73
8.2.2 A 記錄 73
8.2.3 CName 73
8.2.4 配置DNS 負載均衡 74
8.2.5 DNS 負載均衡的優缺點 75
8.3 硬件負載均衡 76
8.4 軟件負載均衡:LVS 77
8.4.1 LVS 架構 77
8.4.2 LVS 的負載均衡方式 78
8.4.3 LVS 的負載均衡策略 80
8.4.4 LVS 的調整升級 81
8.4.5 LVS 的優缺點 81
8.5 軟件負載均衡:Nginx 82
8.5.1 Nginx 架構 82
8.5.2 Nginx 的工作原理 83
8.5.3 Nginx 的負載均衡策略 84
8.5.4 Nginx 的錯誤重試 85
8.5.5 Nginx 的調整升級 85
8.5.6 Nginx 的主要特點 86
8.5.7 Nginx 配置實戰 86
8.6 負載均衡的實踐流程 89
8.6.1 回顧流量基本概念 90
8.6.2 實踐流程 90
第9 章 異步和非阻塞 93
9.1 異步及其相關概念 93
9.1.1 同步和異步 94
9.1.2 阻塞和非阻塞 94
9.1.3 多線程 96
9.2 異步和非阻塞的作用 97
9.2.1 異步和非阻塞的應用場景 97
9.2.2 異步和非阻塞的架構 102
9.2.3 異步的優勢 103
9.3 實戰:以Java 為例 105
9.3.1 Runnable 105
9.3.2 Callable 106
9.3.3 Future 106
9.3.4 Executor 和ExecutorService 108
9.3.5 改造同步且阻塞的Java 代碼 108
9.4 異步和非阻塞帶來的問題 112
9.4.1 API 定義 113
9.4.2 線程池的擴容 113
第10 章 隊列 116
10.1 隊列及其相關概念 116
10.1.1 隊列 116
10.1.2 生產/消費、發布/訂閱與主題 117
10.2 隊列與網站的整合 119
10.2.1 發布者 119
10.2.2 訂閱者 120
10.2.3 訂閱者:推送模式 120
10.2.4 訂閱者:拉取/輪詢模式 122
10.3 隊列的應用 123
10.3.1 流量控制 123
10.3.2 服務解耦 126
10.4 隊列存在的問題與解決方案 128
10.4.1 消息積壓 128
10.4.2 消息的可靠傳遞 130
10.4.3 消息重復 133
10.5 常見的隊列產品和系統 134
10.5.1 RabbitMQ 134
10.5.2 ActiveMQ 135
10.5.3 RocketMQ 135
10.5.4 Kafka 136
10.5.5 AWS SQS 和SNS 136
第11 章 高可用 137
11.1 CAP 原理 137
11.1.1 什么是CAP 原理 137
11.1.2 CAP 原理與網站服務 138
11.2 服務可用性的標準 141
11.3 冗余和隔離 142
11.3.1 擴容中的冗余 142
11.3.2 廣義的冗余 142
11.3.3 隔離 142
第12 章 異地多活 144
12.1 異地多活的基本概念 144
12.1.1 基本概念 144
12.1.2 作用 145
12.1.3 應用場景 145
12.1.4 異地多活和負載均衡 147
12.2 異地多活的類型 147
12.2.1 同城異地多活 147
12.2.2 跨城市異地多活 148
12.2.3 跨地區異地多活 149
12.3 如何進行異地多活改造 149
12.3.1 業務分類 149
12.3.2 數據分類 150
12.3.3 數據同步 151
12.3.4 異地多活的數據同步提升方案 153
第13 章 服務降級 156
13.1 服務降級的基本概念 156
13.1.1 什么是服務降級 156
13.1.2 單點故障 158
13.2 微服務與服務拆分 160
13.2.1 什么是微服務 160
13.2.2 流量模式 161
13.2.3 如何拆分服務 162
13.3 系統分級 165
13.3.1 分析系統流程圖 165
13.3.2 一級系統 166
第14 章 限流 168
14.1 限流的基本概念 168
14.1.1 什么是限流 168
14.1.2 為什么需要限流 169
14.1.3 限流的幾種標準 171
14.1.4 限流的幾種思路 172
14.2 限流算法 176
14.2.1 令牌桶算法與漏桶算法 176
14.2.2 時間窗口算法 179
14.2.3 隊列法 182
14.3 服務限流需要考慮的問題 183
14.3.1 性能和準確性 183
14.3.2 如何進一步提升 184
14.4 實戰:使用Nginx 限流 186
第15 章 下游錯誤處理 191
15.1 超時機制 191
15.2 錯誤分類 192
15.2.1 如何分類錯誤 192
15.2.2 早期失敗 194
15.2.3 默認值的作用 194
15.3 錯誤重試 195
15.3.1 錯誤重試的條件 196
15.3.2 錯誤重試帶來的問題 196
第16 章 測試 198
16.1 測試的類型 198
16.1.1 一般功能測試 198
16.1.2 黑盒和白盒測試 200
16.1.3 不同程度的功能測試 202
16.1.4 非功能的測試 204
16.2 測試用例的設計 206
16.2.1 模擬實際環境 206
16.2.2 包含錯誤情況 207
16.2.3 保證用例多樣性 209
16.2.4 驗證系統間的連接性 212
16.3 功能測試詳解 213
16.3.1 單元測試 213
16.3.2 集成測試 217
16.3.3 端到端測試 219
第17 章 1
深入淺出大型網站架構設計 作者簡介
李力非,2014年起進入互聯網軟件開發行業,并于2015年加入亞馬遜公司,從事軟件開發和設計至今,對后端服務器開發、移動端開發和前端網頁開發均有涉獵,先后參與亞馬遜購物網站移動APP、Alexa智能家居的自動化控制系統和亞馬遜事務類通知系統的軟件開發和設計,領導并參與了多個大型項目。熟悉如何結合設計原則和方法設計超大流量的網絡服務,并擅長根據實際情況和限制,靈活調整系統架構。其中參與設計與開發的Alexa智能家居自動化控制系統的每日用戶使用人次超過2500萬并持續增長,牢牢占據同類產品的市場占有率第一;參與開發的亞馬遜事務類通知系統每日吞吐量達上億。
- >
伊索寓言-世界文學名著典藏-全譯本
- >
龍榆生:詞曲概論/大家小書
- >
有舍有得是人生
- >
唐代進士錄
- >
二體千字文
- >
上帝之肋:男人的真實旅程
- >
中國人在烏蘇里邊疆區:歷史與人類學概述
- >
我與地壇