億級流量網站架構核心技術 跟開濤學搭建高可用高並發係統

億級流量網站架構核心技術 跟開濤學搭建高可用高並發係統 pdf epub mobi txt 電子書 下載 2025

張開濤 著
圖書標籤:
  • 高並發
  • 高可用
  • 網站架構
  • 分布式係統
  • 微服務
  • 性能優化
  • 係統設計
  • 開濤
  • 技術棧
  • 互聯網架構
想要找書就要到 靜流書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 電子工業齣版社
ISBN:9787121309540
版次:1
商品編碼:12153914
品牌:Broadview
包裝:平裝
開本:16開
齣版時間:2017-04-01
用紙:膠版紙
頁數:477

具體描述

編輯推薦

  提前看到這部著作的人這樣評價——
  √經曆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 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
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.10 下單係統水平可擴展架構 / 311
第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.7 遇到的一些坑和問題 / 339
16.8 其他 / 347
17 京東商品詳情頁服務閉環實踐 / 348
17.1 為什麼需要統一服務 / 348
17.2 整體架構 / 349
17.3 一些架構思路和總結 / 350
17.4 引入Nginx接入層 / 354
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.3 如何使用OpenResty開發Web應用 / 371
18.4 基於OpenResty的常用功能總結 / 375
18.5 一些問題 / 376
19 應用數據靜態化架構高性能單頁Web應用 / 377
19.1 整體架構 / 378
19.2 數據和模闆動態化 / 381
19.3 多版本機製 / 381
19.4 異常問題 / 382
20 使用OpenResty開發Web服務 / 383
20.1 架構 / 383
20.2 單DB架構 / 384
20.3 實現 / 387
21 使用OpenResty開發商品詳情頁 / 405
21.1 技術選型 / 407
21.2 核心流程 / 408
21.3 項目搭建 / 408
21.4 數據存儲實現 / 410
21.5 動態服務實現 / 422
21.6 前端展示實現 / 430













































































前言/序言

  序1
  開濤勤奮好學又樂於分享,他很早就深讀瞭不少開源框架源碼,吃透瞭內核技術,又非常喜歡看技術大俠們的分享,不斷與同行交流,並學以緻用,一開始參加工作就站在瞭較高的起點上,所以往往比同齡人做係統更加有信心,成果更加突齣。他感恩於開源和分享,也踐行著開源分享之路,每次埋頭探索之後都有細心總結,有博客時寫博客,有微信公眾號時發公眾號,把學到的和實踐總結齣來的,都無私分享齣來。
  網站是直接麵對廣大客戶的,是公司的門戶,必須快速響應,必須持續可用,必須抗得住洪峰。任何一個網站的發展過程中都齣現過問題,影響客戶體驗和商業利益,公司業務規模越大,網站齣現問題的損失越大。作者進入京東後,花瞭不少精力從事瞭“永不消失的網站”建設工作。作者和同事一起,剋服瞭一個又一個的難題,將口號變成瞭現實。
  本書高屋建瓴,抓住瞭大型高並發網站設計的核心,從設計原則,到高性能、高吞吐量、高可用的係統設計,到高靈敏的監控係統構思、再到應急方案的製定,不失細節,又不拘泥於細節。相比其他已齣版的關於大型網站的架構類的書籍,此書更加貼近實戰,追求實用,所有內容來自於實戰,文章內容也是與同道和網友們互動後改進的,本書也沒有那些為瞭構建一個“完整的體係”而隻起到填充作用的段落。此書特彆適閤那些快速成長型企業網站的建設者,互聯網行業的研發人員,對較大規模網站的重構也有藉鑒意義,看這本書可以少走些彎路,少踩些坑,其中的策略和技術許多可以直接拿來用,從而節省時間。作為本書的第一批讀者,發現這本書的內容組織上兼具工具書的特點,沒有嚴格的前後依賴,可以按章節順序閱讀,也可以隨機選取中間的一章。文中公布瞭作者的聯絡方式,有問題能方便地交流。最後,希望這本書不要成為一個網站架構分享的終結者,希望有更多同學加入到探索和分享的隊伍中來,不斷剋服新的挑戰,分享更多新成果。
  京東商城副總裁、京東Y事業部負責人於永利
  序2
  我們的互聯網開發者都曾經有過這樣的經驗。搭建一個設計精良,功能豐富的網站並不是一個高不可攀的事情。但能夠支持巨大的流量而運行自如就不是一件容易的事情瞭。可是,當你擁有《億級流量網站架構核心技術》時,這一切又變得那麼輕鬆。
  《億級流量網站架構核心技術》一書詳細地闡述瞭開發高並發高可用網站的一係列關鍵原則問題。就如何實現係統高可用,流量高並發進行瞭深刻剖析。本書例舉瞭大量的真實應用案例,幫助讀者深入瞭解。並且使得枯燥的說教變得生動,活潑。
  本書作者長期服務於京東研發的第一綫,擁有豐富的軟件開發經驗。秉持著對技術的熱愛,為互聯網開發者奉獻自己的心路曆程。希望他的讀者能夠從這本書中受益。
  京東集團首席技術顧問翁誌
  序3
  經曆過雙11和618的同學都知道,在大促時如何保證係統的高並發、高可用是非常重要的事情。因此在備戰大促時,有些通用原則和經驗可以幫助我們在遇到高並發時,構建更可用的係統,如限流、降級、水平擴展和隔離解耦等。通過這些原則可以在流量超預期時,很好地保護係統,避免衝擊導緻的係統不可用。
  以前京東也遇到過一些高可用問題,如超時設置不閤理導緻係統崩潰;限流措施不到位,導緻負載過高時係統崩潰;解耦不徹底,導緻某個服務掛掉時所有依賴服務受影響等。這些都是在開發和運維係統中很常見的問題,隻要開發人員在開發係統時注意下這些點就可以很好地避免。書中的高可用部分可以很好地幫助讀者解決這些問題。
  也經常有人討論如何提升係統性能,最直接的解決方案是擴容,或通過如加緩存來提升係統並發能力,或使用隊列進行流量削峰,也可以使用異步並發機製提升吞吐量或者接口性能等。這些技術老生常談,並不新鮮,但很實用,大傢在實現高並發係統時經常會遇到。書中的高並發部分可以幫助讀者理解和使用這些技術。
  這本書還有一部分介紹實戰案例,其中包含瞭京東0級係統“商品詳情頁”和“商品詳情頁統一服務”係統,這兩個係統每天承載瞭京東幾十億的流量,書中深入講解這兩個係統的核心技術,還通過案例詳細介紹如何使用OpenResty設計和開發高性能Web應用,值得認真閱讀。
  本書最大的特點是實用,書中的原則和經驗是在實戰中總結和進化齣來的。市麵上係統化地介紹高可用和高並發的文章並不多,成體係的就更少瞭,很多都是散落在網絡上。開濤是京東優秀的架構師,有很強的架構抽象能力、紮實的編程基本功和豐富的實戰經驗,他將這些原則整理成體係,而且加瞭很多案例,相信可以很好地幫助讀者學習和使用這些原則,讓讀者讀完此書後能落地到實際項目中。
  京東集團架構師吳博
  序4
  大型互聯網業務需要持續建設網站係統並通過PC、移動等各種終端來與用戶進行交互。大流量網站架構如何支持高並發訪問並且保證高可用性,這是一個持久的、極具挑戰的技術話題。毫不誇張地說,無數互聯網行業的工程師為之奮鬥。
  開濤是京東優秀技術人纔的典型代錶。他從研發一綫做起,腳踏實地成長為核心架構師。他所著《億級網站架構核心技術》一書,分享高可用與高並發網站構建技術,乾貨滿滿,特點鮮明。
  第一,理論與實踐結閤。本書不僅總結齣一係列技術方法論,而且配閤真實的案例,娓娓道來,深入淺齣。讀者可以直接運用這些實用技術到自己的日常工作中。
  第二,深度與廣度兼具。本書選題極具針對性,專注於高可用與高並發兩方麵技術實踐,每個方麵均詳解一係列技術細節。
  第三,技術與業務並重。開濤並沒有純談技術,而是圍繞商品詳情頁—京東重要的業務産品之一,來展開更進一步的實踐經驗分享,給讀者從業務需求到技術架構的完整視圖。
  第四,新兵與老將鹹宜。無論是第一年的軟件工程師,還是工作多年的資深人士,均可從本書中受益。
  我個人強烈推薦此書。相信開濤的作品不會讓大傢失望。
  京東商城總架構師、基礎平颱負責人劉海鋒
  序5
  去年年底我拿到本書的電子版,受邀為其寫書評。全書篇幅很長,打開修訂視圖後,看到開濤在即將齣版之前仍然在不斷的補充素材、示例,推敲著詞句。在讀到其中的某個部分的時候,我聯想到當時工作中正在做的一個優化,還跟他詳細的討論過,他想把這個方案也補充進去作為示例。我說,內容已經夠翔實瞭,還嫌書不夠厚嗎?
  是的,開濤恨不得在這本書中,一股腦地告訴大傢他所在領域中所學到和實踐的知識。寫書是一個吃力還不一定能討好的活兒,很佩服他居然能耐心寫瞭這麼多(還有很多限於整書篇幅,鏈接到他的博客和公眾號上的擴展閱讀內容)。我看到瞭作者的誠意。
  全書前半部分我是利用地鐵上的時間看的,雖然內容我比較熟悉,但想在看書的同時如果能提前發現一些錯誤就更好瞭,看得極慢。不過,除瞭一些筆誤之外也沒發現什麼硬傷。後來假期拖延癥犯瞭,答應的書評還遲遲沒有寫完。後半部分就快速看過。尤其是第四部分案例,差不多就是開濤自己之前的工作內容,這些或多或少的都通過其他渠道看過瞭。
  開濤結閤自己的工作內容,以及相關上下遊依賴係統中的各種方案、架構思想,通過自己的思考和歸類總結寫成本書。其中不僅有很多京東的中前端的架構實踐和技術,還有作者在工作過程中用到的很多技術細節甚至代碼。第二、三部分比較詳細和係統地說明瞭高可用、高並發互聯網應用的常用架構思想和設計方法,並配閤不同的場景進行舉例闡述,比較適閤對此已經有瞭一些經驗的讀者。針對一些常見軟件和框架的細節使用說明,以及提供很多代碼的行文風格,也許能滿足那些想立即動手實踐的讀者。
  架構講究權衡和取捨,但是前提之一是盡可能在多個相關領域的技術知識層麵有經驗,因此架構也很重視細節,需要對很多因素有充分思考和權衡,纔有取捨。讀者在閱讀本書的過程中,關注點如果是各種架構方法,則需要注意作者描述的適用場景。如果關注點是各種具體的技術細節,也不要忘記思考背後所體現的架構思想。實際的工作中,很多方案是若乾架構方法和技術的綜閤運用,並且隨著業務或場景的變化而不斷調整的,不要拘泥。
  突然想到瞭倚天屠龍記中張無忌嚮張三豐學太極劍一節,最後張無忌成功忘記瞭所有的招式。對於武功高手來說,最後都是要融會貫通,形成自身體係的,不要被特定的招式所束縛。學習架構,也不外乎是吧。
  京東商城—交易平颱架構師肖飛
  序6
  動起來
  開濤是個勤奮的寫手,寫方案,寫代碼,寫分享,孜孜不倦。對於大多數軟件開發和設計人員來說,寫作不是一件容易的事。因為寫齣來並不是給自己看的,是要給同行們看。技術人員一方麵對好的技術追求若渴,另一方麵又天然地用批判和挑剔的眼光看同行的作品,算是魯迅先生的同道吧。也正因為如此,開濤為此書內容的質量下瞭不少功夫。
  開濤的職業生涯從空中網開始,2014年加入京東,一頭紮進瞭超0級係統的建設過程中,京東商城商品詳情頁改版、商品詳情頁統一服務規劃與落地。這些係統代錶著京東的形象,代錶著京東技術團隊的形象(開濤也是高顔值)。這些係統必須能抗峰值、不掉綫、響應快,隨著業務量的猛增,預期的瓶頸很快會到來,這次關鍵的係統改版也是從這些挑戰開始,後來也就有瞭“永不消失的單品頁”,也就有瞭這本書中的案例和用心總結。
  作者停下開發的腳步,通過思考和總結,把動態的實踐靜止到瞭紙張上,給大傢帶來瞭精彩,又似躍然紙上,願各位讀者能夠把這些發生在某個曆史瞬間的實踐總結動態地運用到現實的開發實踐中。也期望作者可以開放群或者公眾號,邀請技術專傢進來,與讀者進行交流,動起來。
  京東商城架構師林世洪
  2016年12月
  序7
  開啓探索之旅,感受技術的魅力
  近年來,中國的互聯網産業正在以前所未有的速度迅猛發展。而技術在業務發展中所扮演的角色日益重要,隨著各個業務形態的發展湧現齣瞭許多技術應用上的成功案例和先進技術的研究成果。而作者在本書中則通過對工作中的探索和總結來將係統高可用這個神秘莫測的麵紗揭開,讓對此有興趣的人得以窺其真容。
  在以往的交流和麵試過程中,大多數的研發人員在其所研發的係統中很少有機會或確實不需要和繁多的上下遊係統、海量的業務數據、復雜的部署環境以及極端災難(如機房斷電、光縴損壞)打交道,因此也沒有契機和計劃去詳細瞭解、研究係統的高可用,對於係統高可用的理解和實踐大多停留在理論認知和個人嘗試階段,很難有機會應用到解決實際業務問題上,也就很難形成自己技術和理念上的一個積纍。而等到終於有機會開始在海量數據和高並發場景下一展身手的時候,又常常會因為曾經沒有過係統的學習和經驗積纍而在設計係統、容災策略、解決問題的過程中艱難前行。本書則通過淺顯易懂的理念解讀和實際案例將係統高可用相關的係統設計原則、係統限流、降級措施等“兵法三十六計”以非常直白的方式呈現給瞭大傢。讓我們對於一些常見的高並發業務場景下的係統設計原則、高可用策略有瞭清晰的認識和思路的拓展。無論是剛剛接觸編程的學生還是已身經百戰的一綫研發人員都可以從書中得到很多啓發,也許隻是一個配置的改變、一行邏輯的優化、一個策略的調整都有可能讓我們的係統可用性登上新的颱階。
  京東的網站係統走過瞭從靜態到動態、從動態到動靜結閤、從對DB的強依賴到多級緩存、從重啓服務器到自如切換流量、從對503的恐懼到從容應對問題、從修改代碼應對異常到修改配置輕鬆搞定的係統演變曆程。當一個係統的業務體量達到可以引起係統性能和健壯性發生退變的時候,伴隨著係統問題到來的更是研發人員自身能力提升和寶貴經驗積纍的好時機。與其將問題用重啓應用和“無法解釋的詭異問題”來掩蓋,不如把問題的根源挖掘齣來。如果挖掘得足夠深入,一切問題都是可解決的。書中使用的技術和總結的經驗也許無法解決書中業務場景之外的問題,但這也恰恰是技術的魅力所在。沒有一種技術和經驗可以作為係統的萬能解藥來幫助我們一勞永逸的避免掉所有隱患,但我們可以通過對思想的接納和消化來豐富我們的知識體係,讓我們成為一個有思想的研發人員。阮一峰曾經在他的書中對於“如何變有思想”做過解釋,我覺得非常適閤用在研發人員的身上。研發人員的思想是什麼?當你對一個需求、對一個業務形態或者對一個問題有自己的觀點見解,那你就是有思想的。你的觀點越多就越可能接近問題的本質,那麼你的思想就越深刻和豐富。雖然你的觀點不一定是事實也不一定是正確的,但作為研發人員如果有瞭通過不斷探索、質疑、證明觀點的能力之後,那麼也就有瞭透析問題、解決問題的能力。那麼在麵對一個看似簡單的需求或者業務時,也許你可以看得更透徹,將係統設計得更適用更閤理,當你遇到書中提及的問題時也可以開始輕鬆應對。
  我想,閱讀並瞭解書中對於係統高可用這個領域的介紹一定會讓你樂在其中。雖然你可能會有些疑惑和不解,但作為一個技術人對於技術的追求和探索不就是應該這樣嗎?最後,我邀請你一起踏上這個對於係統高可用的探索之旅,來感受技術的魅力。
  京東商城研發總監韓笑躍
  序8
  大規模分布式係統的構建,麵臨很多的睏難和問題,但是請記住,對架構師而言,不管我們要解決多少睏難,最重要的是要保證係統可用,無論任何環境、任何壓力、任何場景,係統都要可用,這是我們的第一要務。在保證係統高可用的前提下,大型分布式係統麵臨的最突齣的三大問題就是:如何應對高並發、如何處理大數據量、如何處理分布式帶來的一係列問題。這也是很多一綫架構老司機們的感悟和共識。
  由於一本書的容量有限,不可能麵麵俱到,因此本書集中火力,係統、詳細、專業地講述瞭:大型分布式係統如何保證高可用性,以及如何應對高並發這兩個大方麵。涉及到很多技術和細節。比如用來保證高可用的:負載均衡和反嚮代理、隔離、限流、降級、超時與重試等;又比如用來處理高並發的:應用緩存、多極緩存、連接池、異步並發、隊列處理等。對很多朋友來說,這裏麵很多知識都是久聞其名,而不知其然,更不知其所以然的,學習本書正好能彌補大傢在這些方麵的知識短闆。
  作者以匠人的情懷,把每個方麵從理論到應用、從技術本質到具體實現都講得透徹明瞭,以平實而不失激情的風格娓娓道來,再輔以實戰經驗的擴展,不單單讓讀者學習到具體的技術和解決問題的思路,更是給齣瞭應對問題的具體解決方案,基本上可以直接把這些方案拿到實際項目中直接使用。
  尤為難得的是:本書還結閤實際的大型應用——京東的商品詳情頁的實現,詳細講解瞭這些技術和方案在真實場景的組閤應用,以更好的讓知識落地。本書先是介紹瞭京東商品詳情頁的基本功能、技術架構的發展以及架構設計,當然還有很多實際的經驗和體會,以“遇到的坑和問題”的麵貌齣現;然後詳細地講述瞭京東商品詳情頁的服務閉環實踐。
  為瞭更好地講述京東商品詳情頁的具體實現,作者先講述瞭實現中使用的基本技術——OpenResty,然後再詳細地講解如何使用OpenResty來開發商品詳情頁,裏麵涉及好多具體而細化的點,都是實際開發中會用到的,值得去認真體會。這樣真實而詳細地講述這種大型係統的實現,絕對一手的技術資料,是具有極大的參考價值的。
  其實,市麵上講述大型分布式架構的書很多,但基本上都停留在理論和知識的層麵,看上去都很對,很“高大上”,但就是落不瞭地,不能很好地跟實際應用進行結閤,從而導緻學習的效果欠佳。而本書很好地解決瞭這個問題,不僅深入淺齣地講述瞭各種保障高可用,以及處理高並發的技術和方案,並理論聯係實際,采用京東商品詳情頁的具體實現這個實際案例,來綜閤展示瞭這些技術的應用,從而加深大傢的理解和領悟,以更好地把這些技術和方案應用到自己的實際項目中去。
  事實上,像本書這樣既有詳盡的技術學習,又有真實、典型案例講述的好書,在市麵上是不多見的,畢竟真正擁有這種大型係統完整架構經驗的人並不多,能講明白的更少。本書作者恰好就是那極少數技術、經驗和知識傳授俱佳的牛人之一,這是讀者之幸。仔細閱讀完本書,讓人有一種醍醐灌頂的頓悟,掩捲長嘆“原來如此啊”。
  坦率地說,本書不是寫給初學者的,對於有一定的開發經驗,甚至是架構設計經驗的朋友,能從本書中收獲更多。但我仍然確信,不管是富有經驗的架構師,還是想要學習架構知識的入門者,仔細、深入閱讀本書,就一定會有收獲。對於暫時不太理解的內容,建議反復閱讀,或者隔段時間再看,並不斷深入思考,最好是能結閤實際的項目,把這些知識都應用上去,學以緻用,這也不枉費作者的一番心血。
  細想起來,認識作者八年多瞭,眼看著作者走齣校園步入職場,從職場新兵,到成長成為在京東領導著上百人團隊的技術大牛,仿佛一切都在昨天,讓人不由不感慨時間如白駒過隙。在我眼中,作者依然是那帥氣、陽光、聰明而又略微有些靦腆的大男孩形象;喜歡研究技術,特彆好學、善思、勤奮,且積極在實際工作中應用所學的知識;喜歡分享技術,常年堅持撰寫技術博文,擁有不少忠實粉絲,在京東內部,也是特彆受歡迎的講師之一。另外告訴大傢一個小秘密,作者愛好攝影,絕對專業級水準哦。
  《研磨設計模式》作者陳臣

用戶評價

評分

一一評價,為瞭京豆,一山的書,評價到手軟,lg的書不好評價。買來收藏的!

評分

非常棒,非常棒,棒,非常棒,非常棒,非常棒,非常棒。比如。你有病啊,你有病啊,你有病啊。

評分

真的很不錯啊真的很不錯啊真的很不錯啊真的很不錯啊真的很不錯啊

評分

吾消費京東商城數載,深知各産品琳琅滿目然而唯此寶物與眾不同,為齣於淤泥之清蓮。使吾為之動容,心馳神往以緻茶飯不思,寢食難安,輾轉反側無法忘懷於是乎節衣縮食湊齊銀兩傾吾之所有而購之,掌櫃之熱心快遞哥之殷切,無不讓人感激涕零可謂迅雷不及掩耳盜鈴兒響叮當仁不讓世界充滿愛,待打開包裹之時頓時金光四射,屋內升起七彩祥雲處處皆是祥和之氣。吾驚訝之餘甚是欣喜若狂,嗚呼哀哉此寶物乃是天上物,人間又得幾迴求!遂沐浴更衣焚香禱告與友共賞此寶,人皆贊嘆不已故生此寶物款型及做工超高性價比之慨俱贊吾獨具慧眼與時尚品位,産品介紹果然句句實言毫無誇大欺瞞之嫌實乃大傢之風範忠義之商賈。

評分

#,先評瞭再說,goodgoodstudydaydaup

評分

打完摺之後很值啊啊啊啊啊啊

評分

這書對於初學Springboot的人來說已經很好瞭,屬於入門級的,希望可以有所提升!

評分

關注瞭好久,這次大促終於買到瞭,為瞭能用券買書,特地開通瞭Plus,結果領完券纔發現奬勵的券都是雞肋券,沒有幾本書能用,還不如普通用戶的優惠券品類多,真心感覺被騙瞭,哎,越來越不厚道瞭,除瞭失望,啥也不說瞭!

評分

JavaEE開發的顛覆者:Spring Boot實戰 ,,cloud還行

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 windowsfront.com All Rights Reserved. 靜流書站 版權所有