發表於2024-12-02
來自螞蟻金服、京東、網聯、新浪微博、同程旅遊等公司的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 等各種常用緩存開源係統的方案及精粹。我讀過不少國外有關緩存的技術專著,多數偏原則和理論,具體實施方案和案例較少,結閤中國互聯網技術的實踐就更少。君澤組織的這本書填補瞭空白。
—— 陳斌 易寶支付CTO
使用緩存是軟件性能優化的大殺器,分布式緩存是網站架構的必殺技。遺憾的是目前並沒有專門講述分布式緩存的書籍,幸運的是現在終於有一本這方麵的專著,作者都是在網站架構一綫的資深專傢,值得信賴,推薦給大傢。
——李智慧 《大型網站技術架構:核心原理與案例分析》作者
本書圍繞分布式緩存的基礎概念、開源框架、應用案例三方麵進行講解,從理論到實戰,循序漸進,深入淺齣。看完部分章節後,意猶未盡,欲罷不能。國內這樣真實應用案例的好書太少瞭,君澤以及他的朋友們填補瞭這一空白,十分期待這本書能早日上市。
——黃勇 特贊科技 CTO/《架構探險》作者
緩存是互聯網架構的*關鍵的環節,陳波在緩存的性能及高可用方麵有豐富的經驗,很高興看到他通過本書分享瞭他在微博研發團隊多年的實踐精華。
——楊衛華 微博研發副總經理
互聯網高性能係統設計的核心關鍵之一就是緩存係統的設計,本書集閤緩存理論、開源緩存係統、大規模業務中緩存的具體實踐,全方位解讀瞭分布式緩存設計,既能夠幫助讀者深入理解分布式緩存係統,又提供瞭很好的架構設計案例供參考,細細品讀,受益良多!
——李運華 阿裏遊戲資深技術專傢 《麵嚮對象葵花寶典》作者
贊譽
推薦序1
推薦序2
推薦序3
作者寄語
前言
第1章 緩存為王1
1.1 什麼是緩存?1
1.2 為什麼使用緩存?2
1.2.1 從用戶體驗說起3
1.2.2 關於係統的性能3
1.3 從網站的架構發展看緩存4
1.4 客戶端緩存5
1.4.1 頁麵緩存6
1.4.2 瀏覽器緩存7
1.4.3 APP上的緩存8
1.5 網絡中的緩存11
1.5.1 Web代理緩存11
1.5.2 邊緣緩存12
1.6 服務端緩存14
1.6.1 數據庫緩存14
1.6.2 平颱級緩存16
1.6.3 應用級緩存18
第2章 分布式係統理論24
2.1 分布式係統概論24
2.2 分布式係統概念26
2.2.1 進程與綫程26
2.2.2 並發26
2.2.3 鎖26
2.2.4 並行27
2.2.5 集群27
2.2.6 狀態特性28
2.2.7 係統重發與冪等性28
2.2.8 硬件異常30
2.3 分布式係統理論31
2.3.1 CAP理論32
2.3.2 CAP理論澄清34
2.3.3 Paxos35
2.3.4 2PC38
2.3.5 3PC39
2.3.6 Raft40
2.3.7 Lease機製41
2.3.8 解決“腦裂”問題43
2.3.9 Quorum NWR44
2.3.10 MVCC45
2.3.11 Gossip46
2.4 分布式係統設計策略49
2.4.1 心跳檢測50
2.4.2 高可用設計50
2.4.3 容錯性52
2.4.4 負載均衡53
2.5 分布式係統設計實踐54
2.5.1 全局ID生成54
2.5.2 哈希取模56
2.5.3 一緻性哈希57
2.5.4 路由錶58
2.5.5 數據拆分58
第3章 動手寫緩存60
3.1 緩存定義的規範60
3.1.1 新規範的主要內容及特性60
3.1.2 新規範的API介紹61
3.2 緩存框架的實現62
3.2.1 前期準備63
3.2.2 緩存的架構介紹63
3.2.3 設計思路以及知識點詳解64
3.3 緩存框架的使用示例74
第4章 Ehcache與Guava Cache76
4.1 Ehcache的主要特性76
4.2 Ehcache使用介紹77
4.2.1 Ehcache架構圖77
4.2.2 緩存數據過期策略78
4.2.3 Ehcache緩存的基本用法81
4.2.4 在Spring中使用Ehcache83
4.3 Ehcache集群介紹85
4.3.1 集群的方式86
4.3.2 如何配置集群88
4.4 Ehcache的適用場景89
4.5 Guava Cache的使用92
4.5.1 Guava Cache的適用場景92
4.5.2 Guava Cache的創建方式93
4.5.3 緩存數據刪除95
4.5.4 並發場景下的使用95
4.6 本章小結96
第5章 從Memcached開始瞭解集中式緩存97
5.1 Memcached基本知識98
5.1.1 Memcached的操作命令98
5.1.2 Memcached使用場景100
5.1.3 Memcached特徵100
5.1.4 Memcached的一些問題101
5.2 Memcached內存存儲102
5.2.1 Slab Allocation機製102
5.2.2 使用 Growth Factor進行調優104
5.2.3 Item105
5.3 典型問題解析106
5.3.1 過期機製106
5.3.2 哈希算法107
5.3.3 熱點問題108
5.3.4 緩存與數據庫的更新問題108
5.3.5 彆把緩存當存儲109
5.3.6 命名空間110
5.3.7 CAS110
5.4 Memcached客戶端分析110
5.4.1 Memcached的Client111
5.4.2 Spymemcached設計思想解析111
5.5 Memcached周邊工具發展117
第6章 Memcached 周邊技術119
6.1 Twemcache119
6.1.1 Twemcache 的設計原理120
6.1.2 Twemcache的安裝及命令行詳解122
6.1.3 基於Java的Twemcache用法125
6.2 Twemproxy126
6.2.1 Twemproxy的常用部署模式127
6.2.2 Twemproxy的可擴展性129
6.2.3 Twemproxy源代碼簡析131
6.3 Mcrouter137
6.3.1 Mcrouter路由算法138
6.3.2 典型的使用場景139
6.3.3 Mcrouter的可擴展性142
6.3.4 源碼簡要解析144
第7章 Redis探秘148
7.1 數據結構148
7.1.1 value對象的通用結構149
7.1.2 String149
7.1.3 List152
7.1.4 Map155
7.1.5 Set157
7.1.6 Sorted-Set159
7.2 客戶端與服務器的交互160
7.2.1 客戶端/服務器協議161
7.2.2 請求/響應模式163
7.2.3 事務模式164
7.2.4 腳本模式168
7.2.5 發布/訂閱模式169
7.3 單機處理邏輯171
7.3.1 多路復用171
7.3.2 定時任務處理173
7.4 持久化174
7.4.1 基於全量模式的持久化174
7.4.2 基於增量模式的持久化176
7.4.3 基於增量模式持久化的優化178
第8章 分布式Redis180
8.1 水平拆分(sharding)181
8.1.1 數據分布181
8.1.2 請求路由182
8.2 主備復製(replication)182
8.2.1 主備復製流程183
8.2.2 斷點續傳183
8.3 故障轉移(failover)184
8.3.1 sentinel間的相互感知185
8.3.2 master的故障發現186
8.3.3 failover決策186
8.4 Redis Cluster187
8.4.1 拓撲結構187
8.4.2 配置的一緻性188
8.4.3 sharding190
8.4.4 failover193
8.4.5 可用性和性能196
第9章 Tair探秘198
9.1 Tair總體架構198
9.2 Config Server簡介199
9.3 Data Server簡介201
9.4 Tair高可用和負載均衡204
9.4.1 對照錶204
9.4.2 數據遷移219
9.5 存儲引擎220
9.6 Tair的API222
9.6.1 key/value相關API223
9.6.2 prefix相關的API226
第10章 EVCache探秘229
10.1 EVCache項目介紹230
10.1.1 EVCache的由來231
10.1.2 EVCache的發展232
10.1.3 EVCache的演進234
10.2 EVCache 的使用場景238
10.2.1 典型用例238
10.2.2 典型部署239
10.3 EVCache的性能240
10.3.1 EVCache集群的性能240
10.3.2 全局化復製時的性能問題242
10.3.3 Moneta項目中的組件性能243
10.4 EVCache 的高可用性244
10.4.1 AWS的多可用區244
10.4.2 EVCache對AWS高可用性的增強245
10.5 源碼與示例245
10.5.1 源碼淺析245
10.5.2 EVCache 示例253
第11章 Aerospike原理及廣告業務應用259
11.1 Aerospike架構259
11.2 Aerospike具體實現261
11.2.1 Aerospike集群管理261
11.2.2 數據分布263
11.3 Aerospike集群配置和部署265
11.3.1 搭建集群的方式與配置266
11.3.2 部署集群267
11.4 Aerospike與Redis的對比271
11.5 Aeropsike在廣告行業的具體應用272
11.5.1 Aerospike在個性化推薦廣告中的應用273
11.5.2 Aerospike在實時競價廣告中的應用274
第12章 社交場景架構進化:從數據庫到緩存283
12.1 社交業務示例283
12.1.1 業務模型283
12.1.2 業務場景284
12.1.3 業務特點285
12.2 關係(relation)的存儲286
12.2.1 基於DB的最簡方案286
12.2.2 DB的sharding方案288
12.2.3 引入緩存290
12.2.4 緩存的優化方案292
12.3 帖子(post)的存儲293
12.3.1 基於DB的方案294
12.3.2 引入服務端緩存296
12.3.3 本地緩存297
12.4 時間綫(timeline)的存儲297
12.4.1 基於DB的方案—push模式298
12.4.2 基於DB的方案—pull模式300
12.4.3 增量查詢引入服務端緩存302
第13章 緩存在社交網絡Feed係統中的架構實踐304
13.1 Feed係統架構304
13.2 Feed緩存模型307
13.3 Feed緩存架構的設計309
13.3.1 簡單數據類型的緩存設計310
13.3.2 集閤類數據的緩存設計312
13.3.3 其他類型數據的緩存設計314
13.4 Feed緩存的擴展 315
13.4.1 Redis的擴展315
13.4.2 計數器的擴展316
13.4.3 存在性判斷的擴展318
13.5 Feed緩存的服務化319
第14章 典型電商應用與緩存324
14.1 電商類應用的挑戰及特點324
14.2 應用數據靜態化架構高性能單頁Web應用325
14.2.1 整體架構326
14.2.2 CMS係統326
14.2.3 前端展示係統328
14.2.4 控製係統328
14.3 應用多級緩存模式支撐海量讀服務329
14.3.1 多級緩存介紹329
14.3.2 如何緩存數據331
14.3.3 分布式緩存與應用負載均衡332
14.3.4 熱點數據與更新緩存334
14.3.5 更新緩存與原子性336
14.3.6 緩存崩潰與快速修復336
14.4 構建需求響應式億級商品詳情頁337
14.4.1 商品詳情頁前端結構338
14.4.2 單品頁技術架構發展338
14.4.3 詳情頁架構設計原則343
14.4.4 遇到的一些問題349
第15章 同程鳳凰緩存係統基於Redis的設計與實踐357
15.1 同程鳳凰緩存係統要解決什麼問題357
深入分布式緩存:從原理到實踐 下載 mobi epub pdf txt 電子書 格式深入分布式緩存:從原理到實踐 下載 mobi pdf epub txt 電子書 格式 2024
深入分布式緩存:從原理到實踐 下載 mobi epub pdf 電子書書不錯,作者實際經驗,值得一讀,學習學習
評分送貨速度快,性價比高,贊一個!送貨速度快,性價比高,贊一個!送貨速度快,性價比高,贊一個!送貨速度快,性價比高,贊一個!送貨速度快,性價比高,贊一個!送貨速度快,性價比高,贊一個!
評分書很是不錯,挺實用的,先讀起來瞭希望對今後有所幫助
評分618超值呀!同事們都買瞭好多!明年還等京東618!
評分書沒有損壞。。翻瞭幾頁質量過關。半摺疊券買的。很實惠
評分書的包裝好,紙質硬的,正版書,比其他平颱買的好多瞭
評分深入分布式緩存從原理到實戰
評分書沒看完,講的挺不錯的(*?´╰╯`?)?
評分老公最近正好在做分布式方麵的東西,正好用的上,應該還是不錯的,物流也很給力
深入分布式緩存:從原理到實踐 mobi epub pdf txt 電子書 格式下載 2024