編輯推薦
提前看到這部著作的人這樣評價——
√經曆618、雙11多次大考,是保證大規模電商係統高流量、高頻次的葵花寶典。
√集中火力講述作者構建京東大流量係統用到的高可用和高並發原則。
√濃縮作者多年對網站係統升級迭代的創新、技術、實踐和積纍。
√高可用和高並發總體原則、關鍵技術、實戰經驗的總結,以及曾經踩過的坑。
√教你如何構建高並發、大流量係統方能經受起億級綫上用戶流量的真實考驗。
√從前端到DB底層設計,本書無不精細闡述。
√站在一個新高度思考網站後颱技術,從應用級緩存到前端緩存,從SOA到閉環。
√京東多年架構升級及大促備戰的高質量總結。
√將係統設計的深奧套路講得如此清晰,難能可貴。
√完整呈現如何設計響應億級請求的京東商品詳情頁係統。
√本書作者是將技術應用於業務、理論應用於實踐的大師。
√地錶至強,天大福利。
√流量並發暴增與係統架構變革的十字路口,需要這樣一本書。
√一個億級流量網站和一個中小型網站的技術架構難度截然不同。
√這種指導手冊式的技術書籍,值得精讀和細品。
√一本互聯網高並發架構設計的百科全書。
√從各角度剖析係統設計的優化要點和注意事項。
√循序漸進地將一係列復雜問題闡述得清晰、易讀。
√實戰齣真理,選擇這本書,靠譜。
內容簡介
《億級流量網站架構核心技術》一書總結並梳理瞭億級流量網站高可用和高並發原則,通過實例詳細介紹瞭如何落地這些原則。本書分為四部分:概述、高可用原則、高並發原則、案例實戰。從負載均衡、限流、降級、隔離、超時與重試、迴滾機製、壓測與預案、緩存、池化、異步化、擴容、隊列等多方麵詳細介紹瞭億級流量網站的架構核心技術,讓讀者看後能快速運用到實踐項目中。
不管是軟件開發人員,還是運維人員,通過閱讀《億級流量網站架構核心技術》都能係統地學習實現億級流量網站的架構核心技術,並收獲解決係統問題的思路和方法。
作者簡介
張開濤,現就職於京東,“開濤的博客”公眾號作者。寫過《跟我學Spring》《跟我學Spring MVC》《跟我學Shiro》《跟我學Nginx+Lua開發》等係列教程,博客現有1000多萬訪問量。
精彩書評
本書是保證大規模電商係統高流量、高頻次的葵花寶典,是互聯網一綫技術研發人員的實戰手冊。該書是經過“618”、“雙11”多次大考,在實踐中反復論證應運而生的。就如山野的綠草曆經大自然韆錘百煉、風雨彩虹、破土而齣,在自然中尋得的法則。但一切有為的成果都是辛勤努力的結果,我認識開濤後重要的印象之一就是他加班加點,挑燈夜戰,幾乎每天下班都是星辰相伴;印象之二不像傳統中的IT男,而是一個熱情、開朗、有愛心的陽光男;印象之三他本身就如他的大作,是一個博學多纔的“字典”,凡是技術性的問題大傢都找他請教,有問必答。嚮緻力於優秀電商係統建設的研發人員強烈推薦。
——京東集團副總裁、京東保險業務負責人 徐春俊
經過這麼多年的沉澱,京東早已擺脫“不行就加機器”的野蠻擴張階段,今天的京東技術人有著豐富的大流量應對經驗,每到大促都期望更猛烈的流量來檢驗他們的係統。作者集中火力講述瞭他在京東構建大流量係統用到的高可用和高並發原則,並通過實際案例讓讀者能落地。
——京東集團副總裁、京東商城研發體係負責人 馬鬆
近十年來,京東的業務規模在不停驅動著係統的升級迭代和技術創新,到今天,京東已沉澱瞭不少技術創新,可以說完成瞭從使用技術到創新技術的轉變。與此同時,京東的技術人在技術圈內的影響力也在不斷擴大,開濤同學就是京東技術的一個好代錶。他在網站係統升級迭代的過程中,不斷創新和使用新技術,並將多年的實踐和積纍都濃縮到瞭本書中。該書可謂是當今電商互聯網圈內的良心力作,理論和實踐的完美結閤,滿滿都是乾貨,也是京東技術人對互聯網技術圈的一份貢獻,強烈推薦大傢閱讀。
——京東集團副總裁、京東X事業部負責人 肖軍
初次見到開濤是在部門的每周例會上,當時就對開濤留下瞭深刻印象,說話清晰簡潔,分析嚴謹透徹,人也長得陽光帥氣。後來纔知道他在Java圈中知名度很高,“開濤的博客”瀏覽量過韆萬,是個不摺不扣的技術大牛。本書是開濤5年多在高可用和高並發方麵總體原則、關鍵技術和實戰經驗的總結,還包括瞭曾經經曆的坑,可謂是理論與實踐相結閤的結晶。在經過瞭“京東618”、“雙11”的億級大考後,保證瞭此書足以作為有誌於構建億級流量網站的技術人員們必備的案頭參考書。
——京東保險高級研發總監 楊建
如何構建高並發、大流量的係統,不是架構師閉門造車想齣來的,是綫上實際的用戶流量檢驗的。本書通過大量的實踐案例,告訴讀者如何架構高並發,大流量的網站係統,不光有理論探討,亦有大量的京東實際案例,乾貨多,強烈推薦研發人員通讀此書。
——京東商城高級研發總監 王曉鍾
本書內容翔實,將專業知識講解的通俗易懂,從前端HTML到DB底層的設計無不精細闡述。更難能可貴的是用真實成功案例傳授如何在實戰中進行大流量網站架構,字裏行間都傳遞著作者的經驗積纍,可謂字字珠磯,是初學者的手冊,更是技術大牛的切磋寶典。
——京東商城研發總監 尚鑫
本書站在一個新的高度考慮網站後颱技術,從應用級緩存到前端緩存、從SOA到閉環等無處不體現作者的深厚功底。作為京東大咖的作者結閤瞭在京東的實踐,運用新的網站開發理論,提齣瞭一套非常全麵的大流量、大並發網站後颱的解決方案。實踐證明這一套方案特彆管用,因為他結閤瞭新的開發技術,簡化開發過程,比較全麵的考慮到瞭可能麵臨的問題。此書特彆適閤中大型網站的架構師、開發工程師、運維等同學,建議人手一本。
——京東商城研發總監 楊思勇
首先,這是一個非常靠譜的技術人寫齣的非常靠譜的作品,本書作者是京東的技術牛人,長期戰鬥在研發的一綫,充滿京東技術人的理想與激情。同時,本書也是京東這麼多年高速發展經曆的架構升級及大促備戰經驗的總結,將構建高可用、高並發係統的各種設計原則、技術方案、實踐進行瞭全麵剖析,知識量非常大,值得所有大中型網站架構師、開發人員花時間學習。
——京東商城研發總監 王彪
麵對大流量高並發,怎樣讓自己開發的係統運行得更高效、展現齣更好的性能體驗?係統底層怎麼構建、資源怎麼調度、流量怎麼管控……其實這些在係統設計上都是有套路的,能將這種套路講得特彆清晰、總結得特彆到位的書真的為數不多,此書非常值得大傢一讀。
——京東商城研發總監 付彩寶
本書著重介紹瞭高並發、高可用服務基本設計原則和技術,並輔以詳實的案例說明,對從業人員有很強的指導意義。作者開濤具備多年高並發高可用服務經驗,結閤自己的工作實踐,將響應億級請求的商品詳情頁係統的設計過程完整展現給讀者,乾貨滿滿,在同類書籍中極為少見,具有很強的藉鑒意義,強烈推薦。
——京東商城研發總監 王春明
本書深入淺齣地介紹瞭高並發係統的建設之路,是幾年實戰經驗的沉澱,並且都經過瞭京東大促下大流量的考驗。不管是初學者還是資深的架構師都能從中獲取到寶貴經驗。開濤是技術應用於業務、理論應用於實踐的大師。開濤齣品,必屬精品。
——京東商城基礎平颱部首席架構師 何小鋒
大傢期待已久的《億級流量網站架構核心技術》終於齣版瞭,這對於中國互聯網界的攻城獅們來說真是一個天大的福利。該書可謂理論和實踐結閤的典範,著眼於高並發和高可用,提齣瞭一係列作者在實戰中總結提煉齣來的設計秘籍,並通過案例對每一條秘籍進行詳細破解,書中提及的每一個案例均為作者在工作中的真實案例,都經曆過大促億級流量的考驗,全是滿滿的乾貨。該書作者開濤同學熱愛技術,樂於分享,我拜讀瞭他所有的博客和公眾號文章,受益匪淺。這是作者又一次良心齣品,值得研讀,強烈推薦。
——京東商城運營研發部首席架構師 者文明
開濤負責的京東網站等核心係統,是京東遷移到京東彈性雲容器平颱運行的係統。在上綫初期遇到架構、性能等問題,開濤以其紮實的大流量網站架構技術功底,順利保障核心係統上容器化平颱。這本《億級流量網站架構核心技術》,匯集瞭開濤多年在京東核心的網站係統架構的演進和實踐。特彆京東業務快速增長,對網站流量並發帶來的挑戰,技術選擇,架構變革,具實踐意義。這本書結閤實際的案例,生動展現技術發展綫路。如果你正在應對流量並發的增加或者係統架構需要變革的十字路口,這本書是你書桌上不可缺少的理論和實踐指導。
——京東商城容器引擎平颱負責人 鮑永成
隨著用戶規模的增長,網站架構問題的難度也在成倍增加。構建一個京東規模的億級流量網站和構建一個中小型網站的技術架構難度截然不同。
在具體的架構實踐中,所需要考慮的問題也遠比中小型網站多得多。開濤根據京東網站架構工作期間的實戰經驗寫成此書。書中既有大型網站架構的通用原則,也有具體難點的解決方案和實踐經驗。
重要的是,書中所述的很多通用原則和技術方案都在京東網站綫上得到瞭有效使用和驗證。對於想深入瞭解如何構建一個大型網站的讀者,這是一本難得的好書。
——京東雲平颱事業部架構師 陳鋒
讀完瞭開濤的《億級流量網站架構核心技術》原稿,我激動的心情難以平復,這正是我一直希望得到的那種指導手冊式的技術書籍。書中沒有浮誇的辭藻,而是實實在在的展示瞭開濤多年來在實戰中的驗證過的理論與經驗。
如果你是一位也麵臨著高訪問高並發場景的研發人員,那麼相信我,這本書中所描述的思路和方法,絕對值得你去學習和藉鑒。
——京東商城 API網關負責人 趙雲霄
本書詳細介紹瞭大流量,高並發係統的設計原則和具體實現方法。從限流降級到多級緩存,異步化,服務閉環,對近幾年在高並發領域大行其道的Nginx+Lua架構的講解更是細緻入微。感謝開濤為大傢帶來這本互聯網高並發架構設計的百科全書。
——京東商城交易平颱架構師 李尊敬
作者將多年的實踐經驗和研究心得呈現在這本書中,而且和實踐很好的結閤起來,具有很強的實踐指導意義。從各個角度講述瞭係統設計的注意點與優化,一層一層從前到後,範圍廣而詳細。乾活十足,強烈推薦。
——京東商城交易平颱架構師 趙輝
開濤理論與實踐經驗結閤,循序漸進地將構建億級流量網站的高並發、高可用的一係列復雜問題闡述得很清楚。閱讀此書受益匪淺,希望每一位開發人員都能閱讀到這本書。
——京東商城交易平颱架構師 尤鳳凱
作者在京東商品詳情頁架構升級實戰等多個項目中總結的成果,已經成功經曆瞭多次618、雙11大促流量的考驗,實戰齣真理,選擇這本書,靠譜。作為技術進階優選的書籍,滿滿的乾貨,備好水,慢慢啃。
——京東商城網站平颱架構師 劉峻樺
目錄
第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 Ngi
億級流量網站架構核心技術 跟開濤學搭建高可用高並發係統 下載 mobi epub pdf txt 電子書