套裝包括以下三本:
億級流量網站架構核心技術
輕量級微服務架構
架構探險:從零開始寫分布式服務框架
億級流量網站架構核心技術》一書總結並梳理瞭億級流量網站高可用和高並發原則,通過實例詳細介紹瞭如何落地這些原則。本書分為四部分:概述、高可用原則、高並發原則、案例實戰。從負載均衡、限流、降級、隔離、超時與重試、迴滾機製、壓測與預案、緩存、池化、異步化、擴容、隊列等多方麵詳細介紹瞭億級流量網站的架構核心技術,讓讀者看後能快速運用到實踐項目中。
不管是軟件開發人員,還是運維人員,通過閱讀《億級流量網站架構核心技術》都能係統地學習實現億級流量網站的架構核心技術,並收獲解決係統問題的思路和方法。
作者簡介
張開濤,現就職於京東,“開濤的博客”公眾號作者。寫過《跟我學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
輕量級微服務架構(上冊)
本係列從開發與運維兩方麵分彆對微服務架構的實踐過程進行描述,全套分為上下兩冊,上冊偏重於開發,下冊偏重於運維。在上冊中讀者會學習到微服務架構所需的開發技能,包括使用SpringBoot搭建微服務開發框架,使用Node.js搭建微服務網關,使用ZooKeeper實現微服務注冊與發現,使用Docker封裝微服務,使用Jenkins部署微服務。通過閱讀上冊,讀者可輕鬆搭建一款輕量級微服務架構。
《輕量級微服務架構(上冊)》適閤對微服務實踐感興趣,以及想成為微服務架構師的人員閱讀。
億級流量網站架構核心技術+架構探險:從零開始寫分布式服務框架+輕量級微服務架構 下載 epub mobi pdf txt 電子書