億級流量網站架構核心技術 跟開濤學搭建高可用高並發係統+
分布式服務框架原理與實踐
9787121309540 9787121279195
億級流量網站架構核心技術 跟開濤學搭建高可用高並發係統
億級流量網站架構核心技術》一書總結並梳理瞭億級流量網站高可用和高並發原則,通過實例詳細介紹瞭如何落地這些原則。本書分為四部分:概述、高可用原則、高並發原則、案例實戰。從負載均衡、限流、降級、隔離、超時與重試、迴滾機製、壓測與預案、緩存、池化、異步化、擴容、隊列等多方麵詳細介紹瞭億級流量網站的架構核心技術,讓讀者看後能快速運用到實踐項目中。
不管是軟件開發人員,還是運維人員,通過閱讀《億級流量網站架構核心技術》都能係統地學習實現億級流量網站的架構核心技術,並收獲解決係統問題的思路和方法。
作者簡介
張開濤,現就職於京東,“開濤的博客”公眾號作者。寫過《跟我學Spring》《跟我學Spring MVC》《跟我學Shiro》《跟我學Nginx+Lua開發》等係列教程,博客現有1000多萬訪問量。
目錄
第1部分 概述 / 1
1 交易型係統設計的一些原則 / 2
1.1 高並發原則 / 3
1.1.1 無狀態 / 3
1.1.2 拆分 / 3
1.1.3 服務化 / 4
1.1.4 消息隊列 / 4
1.1.5 數據異構 / 6
1.1.6 緩存銀彈 / 7
1.1.7 並發化 / 9
1.2 高可用原則 / 10
1.2.1 降級 / 10
1.2.2 限流 / 11
1.2.3 切流量 / 12
1.2.4 可迴滾 / 12
1.3 業務設計原則 / 12
1.3.1 防重設計 / 13
1.3.2 冪等設計 / 13
1.3.3 流程可定義 / 13
1.3.4 狀態與狀態機 / 13
1.3.5 後颱係統操作可反饋 / 14
1.3.6 後颱係統審批化 / 14
1.3.7 文檔和注釋 / 14
1.3.8 備份 / 14
1.4 總結 / 14
第2部分 高可用 / 17
2 負載均衡與反嚮代理 / 18
2.1 upstream配置 / 20
2.2 負載均衡算法 / 21
2.3 失敗重試 / 23
2.4 健康檢查 / 24
2.4.1 TCP心跳檢查 / 24
2.4.2 HTTP心跳檢查 / 25
2.5 其他配置 / 25
2.5.1 域名上遊服務器 / 25
2.5.2 備份上遊服務器 / 26
2.5.3 不可用上遊服務器 / 26
2.6 長連接 / 26
2.7 HTTP反嚮代理示例 / 29
2.8 HTTP動態負載均衡 / 30
2.8.1 Consul+Consul-template / 31
2.8.2 Consul+OpenResty / 35
2.9 Nginx四層負載均衡 / 39
2.9.1 靜態負載均衡 / 39
2.9.2 動態負載均衡 / 41
參考資料 / 42
3 隔離術 / 43
3.1 綫程隔離 / 43
3.2 進程隔離 / 45
3.3 集群隔離 / 45
3.4 機房隔離 / 46
3.5 讀寫隔離 / 47
3.6 動靜隔離 / 48
3.7 爬蟲隔離 / 49
3.8 熱點隔離 / 50
3.9 資源隔離 / 50
3.10 使用Hystrix實現隔離 / 51
3.10.1 Hystrix簡介 / 51
3.10.2 隔離示例 / 52
3.11 基於Servlet 3實現請求隔離 / 56
3.11.1 請求解析和業務處理綫程池分離 / 57
3.11.2 業務綫程池隔離 / 58
3.11.3 業務綫程池監控/運維/降級 / 58
3.11.4 如何使用Servlet 3異步化 / 59
3.11.5 一些Servlet 3異步化壓測數據 / 64
4 限流詳解 / 66
4.1 限流算法 / 67
4.1.1 令牌桶算法 / 67
4.1.2 漏桶算法 / 68
4.2 應用級限流 / 69
4.2.1 限流總並發/連接/請求數 / 69
4.2.2 限流總資源數 / 70
4.2.3 限流某個接口的總並發/請求數 / 70
4.2.4 限流某個接口的時間窗請求數 / 70
4.2.5 平滑限流某個接口的請求數 / 71
4.3 分布式限流 / 75
4.3.1 Redis+Lua實現 / 76
4.3.2 Nginx+Lua實現 / 77
4.4 接入層限流 / 78
4.4.1 ngx_http_limit_conn_module / 78
4.4.2 ngx_http_limit_req_module / 80
4.4.3 lua-resty-limit-traffic / 88
4.5 節流 / 90
4.5.1 throttleFirst/throttleLast / 90
4.5.2 throttleWithTimeout / 91
參考資料 / 92
5 降級特技 / 93
5.1 降級預案 / 93
5.2 自動開關降級 / 95
5.2.1 超時降級 / 95
5.2.2 統計失敗次數降級 / 95
5.2.3 故障降級 / 95
5.2.4 限流降級 / 95
5.3 人工開關降級 / 96
5.4 讀服務降級 / 96
5.5 寫服務降級 / 97
5.6 多級降級 / 98
5.7 配置中心 / 100
5.7.1 應用層API封裝 / 100
5.7.2 配置文件實現開關配置 / 101
5.7.3 配置中心實現開關配置 / 102
5.8 使用Hystrix實現降級 / 106
5.9 使用Hystrix實現熔斷 / 108
5.9.1 熔斷機製實現 / 108
5.9.2 配置示例 / 112
5.9.3 采樣統計 / 113
6 超時與重試機製 / 117
6.1 簡介 / 117
6.2 代理層超時與重試 / 119
6.2.1 Nginx / 119
6.2.2 Twemproxy / 126
6.3 Web容器超時 / 127
6.4 中間件客戶端超時與重試 / 127
6.5 數據庫客戶端超時 / 131
6.6 NoSQL客戶端超時 / 134
6.7 業務超時 / 135
6.8 前端Ajax超時 / 135
6.9 總結 / 136
6.10 參考資料 / 137
7 迴滾機製 / 139
7.1 事務迴滾 / 139
7.2 代碼庫迴滾 / 140
7.3 部署版本迴滾 / 141
7.4 數據版本迴滾 / 142
7.5 靜態資源版本迴滾 / 143
8 壓測與預案 / 145
8.1 係統壓測 / 145
8.1.1 綫下壓測 / 146
8.1.2 綫上壓測 / 146
8.2 係統優化和容災 / 147
8.3 應急預案 / 148
第3部分 高並發 / 153
9 應用級緩存 / 154
9.1 緩存簡介 / 154
9.2 緩存命中率 / 155
9.3 緩存迴收策略 / 155
9.3.1 基於空間 / 155
9.3.2 基於容量 / 155
9.3.3 基於時間 / 155
9.3.4 基於Java對象引用 / 156
9.3.5 迴收算法 / 156
9.4 Java緩存類型 / 156
9.4.1 堆緩存 / 158
9.4.2 堆外緩存 / 162
9.4.3 磁盤緩存 / 162
9.4.4 分布式緩存 / 164
9.4.5 多級緩存 / 166
9.5 應用級緩存示例 / 167
9.5.1 多級緩存API封裝 / 167
9.5.2 NULL Cache / 170
9.5.3 強製獲取新數據 / 170
9.5.4 失敗統計 / 171
9.5.5 延遲報警 / 171
9.6 緩存使用模式實踐 / 172
9.6.1 Cache-Aside / 173
9.6.2 Cache-As-SoR / 174
9.6.3 Read-Through / 174
9.6.4 Write-Through / 176
9.6.5 Write-Behind / 177
9.6.6 Copy Pattern / 181
9.7 性能測試 / 181
9.8 參考資料 / 182
10 HTTP緩存 / 183
10.1 簡介 / 183
10.2 HTTP緩存 / 184
10.2.1 Last-Modified / 184
10.2.2 ETag / 190
10.2.3 總結 / 192
10.3 HttpClient客戶端緩存 / 192
10.3.1 主流程 / 195
10.3.2 清除無效緩存 / 195
10.3.3 查找緩存 / 196
10.3.4 緩存未命中 / 198
10.3.5 緩存命中 / 198
10.3.6 緩存內容陳舊需重新驗證 / 202
10.3.7 緩存內容無效需重新執行請求 / 205
10.3.8 緩存響應 / 206
10.3.9 緩存頭總結 / 207
10.4 Nginx HTTP緩存設置 / 208
10.4.1 expires / 208
10.4.2 if-modified-since / 209
10.4.3 nginx proxy_pass / 209
10.5 Nginx代理層緩存 / 212
10.5.1 Nginx代理層緩存配置 / 212
10.5.2 清理緩存 / 215
10.6 一些經驗 / 216
參考資料 / 217
11 多級緩存 / 218
11.1 多級緩存介紹 / 218
11.2 如何緩存數據 / 220
11.2.1 過期與不過期 / 220
11.2.2 維度化緩存與增量緩存 / 221
11.2.3 大Value緩存 / 221
11.2.4 熱點緩存 / 221
11.3 分布式緩存與應用負載均衡 / 222
11.3.1 緩存分布式 / 222
11.3.2 應用負載均衡 / 222
11.4 熱點數據與更新緩存 / 223
11.4.1 單機全量緩存+主從 / 223
11.4.2 分布式緩存+應用本地熱點 / 224
11.5 更新緩存與原子性 / 225
11.6 緩存崩潰與快速修復 / 226
11.6.1 取模 / 226
11.6.2 一緻性哈希 / 226
11.6.3 快速恢復 / 226
12 連接池綫程池詳解 / 227
12.1 數據庫連接池 / 227
12.1.1 DBCP連接池配置 / 228
12.1.2 DBCP配置建議 / 233
12.1.3 數據庫驅動超時實現 / 234
12.1.4 連接池使用的一些建議 / 235
12.2 HttpClient連接池 / 236
12.2.1 HttpClient 4.5.2配置 / 236
12.2.2 HttpClient連接池源碼分析 / 240
12.2.3 HttpClient 4.2.3配置 / 241
12.2.4 問題示例 / 243
12.3 綫程池 / 244
12.3.1 Java綫程池 / 245
12.3.2 Tomcat綫程池配置 / 248
13 異步並發實戰 / 250
13.1 同步阻塞調用 / 251
13.2 異步Future / 252
13.3 異步Callback / 253
13.4 異步編排CompletableFuture / 254
13.5 異步Web服務實現 / 257
13.6 請求緩存 / 259
13.7 請求閤並 / 261
14 如何擴容 / 266
分布式服務框架原理與實踐
本書作者具有豐富的分布式服務框架、平颱中間件的架構設計和實踐經驗,主導設計的華為分布式服務框架已經在全球數十個國傢成功商用。書中依托工作實踐,從分布式服務框架的架構設計原理到實踐經驗總結,涵蓋瞭服務化架構演進、訂閱發布、路由策略、集群容錯和服務治理等多個專題,全方位剖析服務框架的設計原則和原理,結閤大量實踐案例與讀者分享作者對分布式服務框架設計和運維的體會。同時,對基於Docker部署微服務以及基於微服務架構開發、部署和運維業務係統進行瞭詳細介紹。第1章應用架構演進1
1.1傳統垂直應用架構2
1.1.1垂直應用架構介紹2
1.1.2垂直應用架構麵臨的挑戰4
1.2RPC架構6
1.2.1RPC框架原理6
1.2.2簡單的RPC框架實現8
1.2.3業界主流RPC框架14
1.2.4RPC框架麵臨的挑戰17
1.3SOA服務化架構18
1.3.1麵嚮服務設計的原則18
1.3.2服務治理19
1.4微服務架構21
1.4.1什麼是微服務21
1.4.2微服務架構對比SOA22
1.5總結23
第2章分布式服務框架入門25
2.1分布式服務框架誕生背景26
2.1.1應用從集中式走嚮分布式.26?
2.1.2亟需服務治理28
2.2業界分布式服務框架介紹29
2.2.1阿裏Dubbo30
2.2.2淘寶HSF33
2.2.3亞遜CoralService35
2.3分布式服務框架設計36
2.3.1架構原理36
2.3.2功能特性37
2.3.3性能特性39
2.3.4可靠性39
2.3.5服務治理40
2.4總結41
第3章通信框架42
3.1關鍵技術點分析43
3.1.1長連接還是短連接43
3.1.2BIO還是NIO43
3.1.3自研還是選擇開源NIO框架46
3.2功能設計47
3.2.1服務端設計48
3.2.2客戶端設計50
3.3可靠性設計53
3.3.1鏈路有效性檢測54
3.3.2斷連重連機製56
3.3.3消息緩存重發57
3.3.4資源優雅釋放58
3.4性能設計59
3.4.1性能差的三宗罪59
3.4.2通信性能三原則60
3.4.3高性能之道61
3.5佳實踐61
3.6總結64
第4章序列化與反序列化65
4.1幾個關鍵概念澄清66
4.1.1序列化與通信框架的關係66
4.1.2序列化與通信協議的關係66
4.1.3是否需要支持多種序列化方式67
4.2功能設計67
4.2.1功能豐富度
億級流量網站架構核心技術 跟開濤學搭建高可用高並發係統+分布式服務框架原理與實踐 下載 mobi epub pdf txt 電子書 格式
億級流量網站架構核心技術 跟開濤學搭建高可用高並發係統+分布式服務框架原理與實踐 下載 mobi pdf epub txt 電子書 格式 2024
億級流量網站架構核心技術 跟開濤學搭建高可用高並發係統+分布式服務框架原理與實踐 mobi epub pdf txt 電子書 格式下載 2024