深入分布式緩存 從原理到實踐 9787111585190 99元
億級流量網站架構核心技術 9787121309540 99元
YL11974
深入分布式緩存:從原理到實踐
螞蟻金服、京東、網聯、新浪微博、同程旅遊等公司10位資深架構師撰寫,易寶支付CTO陳斌等多位專傢聯袂推薦
於君澤,曹洪偉,邱碩 等 著
定價 99元
齣版社: 機械工業齣版社
ISBN:9787111585190
版次:1
商品編碼:12276070品牌:機工齣版
包裝:平裝
開本:16
齣版時間:2017-12-01
用紙:膠版紙
來自螞蟻金服、京東、網聯、新浪微博、同程旅遊等公司的10餘位一綫架構師用心之作;
阿裏研究員蔣江偉、易寶支付CTO陳斌、普元信息CTO焦烈焱、特贊科技CTO黃勇、 微博研發副總經理楊衛華等專傢聯袂推薦
深度解構Ehcache、Memcached、Redis、tair、EVCache、Aerospike等6大緩存係統的技術原理,及其在電商、社交、廣告等典型場景中的應用
這是國內首本從大型互聯網係統的應用角度探討分布式緩存的書籍,包含瞭原理、框架、架構、案例等多方麵的視角。
互聯網係統隨著容量需求的陡增,許多看似簡單的存儲類場景都麵臨著巨大的容量和穩定性風險,而其中的大部分都可以通過對緩存的閤理使用來規避。讀者從對本書的閱讀當中,將會獲得應對這些問題的經驗,也會對分布式緩存有一個體係化的認識。
本書內容共分為三個部分,按照從理論到實現,再到實踐的思路撰寫。
首先介紹分布式緩存的背景知識,對本書“分布式”和“緩存”這兩個關鍵詞進行瞭全麵的綜述,作為後續章節敘述的基礎;
第二部分介紹業界主流的緩存,關注其原理與實現,囊括瞭Ehcache、Memcached、Redis、tair、EVCache、Aerospike等六個緩存或類緩存係統;
·後一部分討論緩存在互聯網係統中的實踐,從廣告、社交、新聞、電商、營銷等五類典型的互聯網應用入手,分析它們麵臨的性能穩定性問題以及如何利用分布式緩存解決這些問題
於君澤:螞蟻金服高級技術專傢、花名右軍,IT從業超過十五年。對高並發、分布式架構、內建質量、研發管理有一些心得。維護公眾號“技術瑣話”。
程超:“愛農驛站”首席支付技術專傢。InfoQ、中生代技術社區簽約作者,CSDN博主專傢,Spring for all社區貢獻者,擅長微服務和分布式架構。
邱碩:螞蟻金服技術專傢,花名牧丘,在阿裏和支付寶從事中間件、應用係統的性能/穩定性技術風險相關工作。Cobar主要作者。
曹洪偉:70後老碼農,全棧工匠一枚,服務過多傢世界500強,後連續創業,現任渡鴉科技CTO,緻力於人工智能硬件,維護有“wireless_com ”公眾號 和博客
劉璟宇:拍拍貸資深架構師,十餘年互聯網行業從業經驗,主要研究雲計算、服務化基礎框架以及各種基礎組件。
張開濤:京東架構師,,書《億級流量網站架構核心技術》作者,維護有“開濤的博客”公眾號。
何濤:網聯高級架構師,對高流量下的架構設計有豐富的實踐經驗,熱衷於高可用、高並發和高性能的架構研究。
宋慧慶:勤誠互動研發總監兼高級架構師,十年互聯網廣告行業經驗,主要研究高可用架構技術,為流量變現提供更好的服務。
陳波:新浪微博技術專傢,負責平颱基礎架構及優化,經曆瞭微博從起步到成為數億用戶的大型互聯網係統的演進過程。
王曉波:同程旅遊首席架構師,10餘年互聯網行業從業經驗,負責中間件、微服務、分布式架構、運維、安全等方麵工作。
精彩書評
緩存是一項與高性能相關的技術,同時也是係統架構中非常核心的部分,一個係統緩存承擔著90%以上的熱點流量,緩存隻要齣現一點問題,係統的可用性會馬上受到影響。 本書係統地介紹瞭緩存的原理、作用和價值,理解緩存的使用對架構一個高性能的分布式係統有很大的幫助。
——小邪(蔣江偉) 阿裏研究員
通過分布式、微服務架構,實現業務的雲化/數字化,並建立起應用生態,是一個復雜的體係結構,相關的著作很多,但專注在緩存方麵的還沒有。右軍選擇瞭這個方嚮,就是希望能幫助我們構建一個完整的技術視圖,我相信這是他們的初衷。
——焦烈焱 普元信息CTO
這本書深入淺齣地討論瞭ehcache、memcached、redis、tair、 EVCache 等各種常用緩存開源係統的方案及精粹。我讀過不少國外有關緩存的技術專著,多數偏原則和理論,具體實施方案和案例較少,結閤中國互聯網技術的實踐就更少。君澤組織的這本書填補瞭空白。
—— 陳斌 易寶?1?71?1?779?1?71?1?776付CTO
使用緩存是軟件性能優化的大殺器,分布式緩存是網站架構的必殺技。遺憾的是目前並沒有專門講述分布式緩存的書籍,幸運的是現在終於有一本這方麵的專著,作者都是在網站架構一綫的資深專傢,值得信賴,推薦給大傢。
——李智慧 《大型網站技術架構:核心原理與案例分析》作者
本書圍繞分布式緩存的基礎概念、開源框架、應用案例三方麵進行講解,從理論到實戰,循序漸進,深入淺齣。看完部分章節後,意猶未盡,欲罷不能。國內這樣真實應用案例的好書太少瞭,君澤以及他的朋友們填補瞭這一空白,十分期待這本書能早日上市。
——黃勇 特贊科技 CTO/《架構探險》作者
緩存是互聯網架構的*關鍵的環節,陳波在緩存的性能及高可用方麵有豐富的經驗,很高興看到他通過本書分享瞭他在微博研發團隊多年的實踐精華。
——楊衛華 微博研發副總經理
互聯網高性能係統設計的核心關鍵之一就是緩存係統的設計,本書集閤緩存理論、開源緩存係統、大規模業務中緩存的具體實踐,全方位解讀瞭分布式緩存設計,既能夠幫助讀者深入理解分布式緩存係統,又提供瞭很好的架構設計案例供參考,細細品讀,受益良多!
——李運華 阿裏遊戲資深技術專傢 《麵嚮對象葵花寶典》作者
億級流量網站架構核心技術——跟開濤學搭建高可用高並發係統 平裝 – 2017年4月1日
張開濤 (作者)
基本信息
齣版社: 電子工業齣版社; 第1版 (2017年4月1日)
平裝: 477頁
語種: 簡體中文
開本: 16
ISBN: 7121309548, 9787121309540
條形碼: 9787121309540
商品尺寸: 23.2 x 18.5 x 2.4 cm
商品重量: 762 g
品牌: 電子工業齣版社
定價 99元
《億級流量網站架構核心技術——跟開濤學搭建高可用高並發係統》內容提要 《億級流量網站架構核心技術》一書總結並梳理瞭億級流量網站高可用和高並發原則,通過實例詳細介紹瞭如何落地這些原則。本書分為四部分:概述、高可用原則、高並發原則、案例實戰。從負載均衡、限流、降級、隔離、超時與重試、迴滾機製、壓測與預案、緩存、池化、異步化、擴容、隊列等多方麵詳細介紹瞭億級流量網站的架構核心技術,讓讀者看後能快速運用到實踐項目中。 不管是軟件開發人員,還是運維人員,通過閱讀《億級流量網站架構核心技術》都能係統地學習實現億級流量網站的架構核心技術,並收獲解決係統問題的思路和方法。
目錄
第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 H T T P心跳檢查 25
2.5 其他配置 25
2.5.1 域名上遊服務器 25
2.5.2 備份上遊服務器 26
2.5.3 不可用上遊服務器 26
2.6 長連接 26
2.7 H T T P反嚮代理示例 29
2.8 H T T P動態負載均衡 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
……
參考資料 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 H T T P緩存 183
10.1 簡介 183
10.2 H T T P緩存 184
10.2.1 Last-Modified 184
10.2.2 ETag 190
10.2.3 總結 192
10.3 H T T PClient客戶端緩存 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 H T T P緩存設置 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 H T T PClient連接池 236
12.2.1 H T T PClient 4.5.2配置 236
12.2.2 H T T PClient連接池源碼分析 240
12.2.3 H T T PClient 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
14.1 單體應用垂直擴容 267
14.2 單體應用水平擴容 267
14.3 應用拆分 268
14.4 數據庫拆分 271
14.5 數據庫分庫分錶示例 275
14.5.1 應用層還是中間件層 275
14.5.2 分庫分錶策略 277
14.5.3 使用sharding-jdbc分庫分錶 279
14.5.4 sharding-jdbc分庫分錶配置 279
14.5.5 使用sharding-jdbc讀寫分離 283
14.6 數據異構 284
14.6.1 查詢維度異構 284
14.6.2 聚閤數據異構 285
14.7 任務係統擴容 285
14.7.1 簡單任務 285
14.7.2 分布式任務 287
14.7.3 Elastic-Job簡介 287
14.7.4 Elastic-Job-Lite功能與架構 287
14.7.5 Elastic-Job-Lite示例 288
15 隊列術 295
15.1 應用場景 295
15.2 緩衝隊列 296
15.3 任務隊列 297
15.4 消息隊列 297
15.5 請求隊列 299
15.6 數據總綫隊列 300
15.7 混閤隊列 301
15.8 其他隊列 302
15.9 Disruptor+Redis隊列 303
15.9.1 簡介 303
15.9.2 XML配置 304
15.9.3 EventWorker 305
15.9.4 EventPublishThread 307
15.9.5 EventHandler 308
15.9.6 EventQueue 308
15.10 下單係統水平可擴展架構 311
15.10.1 下單服務 313
15.10.2 同步Worker 313
15.11 基於Canal實現數據異構 314
15.11.1 Mysql主從復製 315
15.11.2 Canal簡介 316
15.11.3 Canal示例 318
第4部分 案例 323
16 構建需求響應式億級商品詳情頁 324
16.1 商品詳情頁是什麼 324
16.2 商品詳情頁前端結構 325
16.3 我們的性能數據 327
16.4 單品頁流量特點 327
16.5 單品頁技術架構發展 327
16.5.1 架構1.0 328
16.5.2 架構2.0 328
16.5.3 架構3.0 330
16.6 詳情頁架構設計原則 332
16.6.1 數據閉環 332
16.6.2 數據維度化 333
16.6.3 拆分係統 334
16.6.4 Worker無狀態化+任務化 334
16.6.5 異步化+並發化 335
16.6.6 多級緩存化 335
16.6.7 動態化 336
16.6.8 彈性化 336
16.6.9 降級開關 336
16.6.10 多機房多活 337
16.6.11 多種壓測方案 338
16.7 遇到的一些坑和問題 339
16.7.1 SSD性能差 339
16.7.2 鍵值存儲選型壓測 340
16.7.3 數據量大時JIMDB同步不動 342
16.7.4 切換主從 342
16.7.5 分片配置 342
16.7.6 模闆元數據存儲HTML 342
16.7.7 庫存接口訪問量600w/分鍾 343
16.7.8 微信接口調用量暴增 344
16.7.9 開啓Nginx Proxy Cache性能不升反降 344
16.7.10 配送至讀服務因依賴太多,響應時間偏慢 344
16.7.11 網絡抖動時,返迴502錯誤 346
16.7.12 機器流量太大 346
16.8 其他 347
17 京 東商品詳情頁服務閉環實踐 348
17.1 為什麼需要統一服務 348
17.2 整體架構 349
17.3 一些架構思路和總結 350
17.3.1 兩種讀服務架構模式 351
17.3.2 本地緩存 352
17.3.3 多級緩存 353
17.3.4 統一入口/服務閉環 354
17.4 引入Nginx接入層 354
17.4.1 數據校驗/過濾邏輯前置 354
17.4.2 緩存前置 355
17.4.3 業務邏輯前置 355
17.4.4 降級開關前置 355
17.4.5 AB測試 356
17.4.6 灰度發布/流量切換 356
17.4.7 監控服務質量 356
17.4.8 限流 356
17.5 前端業務邏輯後置 356
17.6 前端接口服務端聚閤 357
17.7 服務隔離 359
18 使用OpenResty開發高性能Web應用 360
18.1 OpenResty簡介 361
18.1.1 Nginx優點 361
18.1.2 Lua的優點 361
18.1.3 什麼是ngx_lua 361
18.1.4 開發環境 362
18.1.5 OpenResty生態 362
18.1.6 場景 362
18.2 基於OpenResty的常用架構模式 363
18.2.1 負載均衡 363
18.2.2 單機閉環 364
18.2.3 分布式閉環 367
18.2.4 接入網關 368
18.2.5 核心接入Nginx功能 369
18.2.6 業務Nginx功能 369
18.2.7 Web應用 370
18.3 如何使用OpenResty開發Web應用 371
18.3.1 項目搭建 371
18.3.2 啓停腳本 372
18.3.3 配置文件 372
18.3.4 nginx.conf配置文件 373
18.3.5 Nginx項目配置文件 373
18.3.6 業務代碼 374
18.3.7 模闆 374
18.3.8 公共Lua庫 375
18.3.9 功能開發 375
18.4 基於OpenResty的常用功能總結 375
18.5 一些問題 376
19 應用數據靜態化架構高性能單頁Web應用 377
..............
評分
評分
評分
評分
評分
評分
評分
評分
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有