作 者:尼恩等 著
定 價:118
出 版 社:清華大學出版社
出版日期:2022年11月01日
頁 數:456
裝 幀:平裝
ISBN:9787302621416
"基於億級用戶的高並發、高可用性和高性能Web應用進行體繫化、結構化、清晰化的章節安排。從Java靜態代理、動態代理模式入手,解讀Spring Cloud全家桶中RPC的核心原理和執行過程。從觀察者模式入手,解讀RxJava、Hystrix的核心思想和使用方法。從高性能傳輸模式Reactor模型入手,解讀Nginx的核心思想以及各配置項的底層知識和原理。本書的初衷是為讀者奉上一本Spring Cloud和Nginx的“原理級”“思想級”的優秀圖書,幫助讀者順利進入互聯網大等
●第1章 億級用戶Web應用的架構與實操 1
1.1 高並發基本原理 1
1.1.1 響應時間 1
1.1.2 吞吐量 2
1.1.3 錯誤率 4
1.2 提升繫統的並發能力 4
1.2.1 縱向擴展 5
1.2.2 橫向擴展 6
1.2.3 高並發架構中的分層策略 6
1.3 接入層橫向擴展高並發架構 7
1.3.1 硬負載均衡 7
1.3.2 軟負載均衡 8
1.3.3 LVS和Nginx的配合使用 10
1.3.4 DNS負載均衡 10
1.4 動靜分離與接入層的緩存架構 14
1.4.1 接入層網關緩存 14
1.4.2 CDN加速 15
1.4.3 接入層的緩存架構的原則 17
1.5 服務層的橫向擴展高並發架構 18
1.5.1 微服務網關的高並發橫向擴展 18
1.5.2 微服務Provider高並發橫向擴展 19
1.5.3 微服務Provider的自動伸縮 20
1.6 緩存層的高並發架構 24
1.6.1 旁路緩存模式 24
1.6.2 讀/寫穿透模式 26
1.6.3 異步回寫模式 28
1.6.4 三大緩存使用模式的比較 28
1.6.5 旁路緩存模式如何保證雙寫的數據一致性 29
1.6.6 本地緩存架構 39
1.6.7 多級、細粒度緩存架構 42
1.7 數據層的橫向擴展高並發架構 44
1.7.1 數據庫服務器的能力參考數據 44
1.7.2 結構化數據的高並發架構方案:分庫分表 45
1.7.3 結構化分庫分表:水平拆分與垂直拆分 46
1.7.4 億級庫表規模架構設計 47
1.7.5 百億級庫表架構設計 48
1.7.6 百億級數據的異構查詢 49
1.7.7 ES+HBase組合方案的數據查詢過程 50
1.8 億級用戶量場景下的流量預估 50
1.8.1 請求處理模型 50
1.8.2 舊繫統的流量架構 52
1.8.3 新繫統的流量架構 52
1.8.4 二八定律 52
1.8.5 通過二八定律進行流量預估 53
1.9 高並發架構 56
1.9.1 同步架構 56
1.9.2 異步架構 56
1.10 高可用架構 57
1.10.1 什麼是高可用 57
1.10.2 高可用的度量 58
1.10.3 高並發架構中的分層策略 58
1.10.4 分層規避單點瓶頸+自動故障轉移 58
1.10.5 其他的高可用策略 59
1.11 高性能架構 59
第2章 Spring Cloud+Nginx高並發核心編程的學習準備 61
2.1 Spring Cloud + Nginx架構的主要組件 61
2.2 Spring Cloud+Nginx核心知識的廣泛欠缺 63
2.3 Spring Cloud和Spring Boot的版本選擇 63
2.4 Spring Cloud微服務開發所涉及的中間件 65
2.5 Spring Cloud微服務開發和自驗證環境 66
2.5.1 開發和自驗證環境的繫統選項和環境變量配置 66
2.5.2 使用Fiddler工具抓包和查看報文 67
2.6 crazy-Spring Cloud微服務開發腳手架 69
2.7 以作為Spring Cloud+Nginx的實戰案例 70
第3章 Spring Cloud入門實戰 72
3.1 Eureka服務注冊與發現 73
3.1.1 什麼是服務注冊與發現 73
3.1.2 Eureka Server注冊中心 74
3.1.3 微服務提供者Provider的創建和配置 79
3.1.4 微服務提供者的續約(心跳) 82
3.1.5 微服務提供者的健康狀態 84
3.1.6 Eureka自我保護模式與失效Provider的快速剔除 87
3.2 Config配置中心 90
3.2.1 config-server服務端組件 90
3.2.2 config-client客戶端組件 92
3.3 微服務的RPC遠程調用 93
3.3.1 RESTfull風格簡介 94
3.3.2 RestTemplate遠程調用 94
3.3.3 Feign遠程調用 96
3.4 Feign+Ribbon實現客戶端負載均衡 97
3.4.1 Spring Cloud Ribbon基礎 97
3.4.2 Spring Cloud Ribbon的負載均衡策略 100
3.4.3 Spring Cloud Ribbon的常用配置 101
3.5 Feign+Hystrix實現RPC調用保護 105
3.5.1 Spring Cloud Hystrix失敗回退 106
3.5.2 分布式繫統面臨的雪崩難題 109
3.5.3 Spring Cloud Hystrix熔斷器 111
第4章 Spring Cloud RPC遠程調用 核心原理 115
4.1 代理模式與RPC客戶端實現類 115
4.1.1 客戶端RPC遠程調用實現類的職責 115
4.1.2 簡單的RPC客戶端實現類 117
4.1.3 從基礎原理講起:代理模式與RPC客戶端實現類 120
4.1.4 使用動態代理模式實現RPC客戶端類 123
4.1.5 JDK動態代理機制的原理 126
4.2 模擬的Feign RPC動態代理實現 128
……
本書從動態代理模式、Reactor模式、三大限流策略等知識入手,深入淺出地剖析Spring Cloud+Nginx繫統架構的核心原理以及Web高並發開發技術。全書從基礎設計模式和基礎原理出發,理論與實戰相結合,繫統、詳盡地介紹Spring Cloud + Nginx高並發核心編程。本書共10章。前6章剖析Feign高並發RPC的底層原理,解析Hystrix高性能配置的核心選項,闡述Hystrix滑動窗口的核心原理;後4章介紹Nginx的核心原理及其配置,並結合場景實現Spring Cloud、Spring Cloud+Nginx Lua,為廣大Java開發者提供一個全面學習高並發開發的實戰案例。這些知識會為廣大Java工程師解決後臺開發中遇到的高並發、高性能問題打下堅實的技術基礎。
尼恩等 著
"尼 恩中南大學碩士,資深繫統架構師、IT領域資深作家、有名博主、從業十餘年,先後在華為、神州數碼等公司從事技術研發、架構工作。長期專注於高性能Web平臺、高性能通信、高性能搜索、數據挖掘等領域的3高架構研究、架構實操、核心代碼開發工作,以及核心中間件、底層源碼研究工作,負責過多個億級RMB智慧城市平臺、大型政務平臺、數據中臺架構、技術中臺架構工作,發起的3高研究社群“瘋狂創客圈”目前有研究人員1100多人。唐 歡計算機專業碩士,資深繫統架構師、資深博主,擁有多年Java開發和繫統架構經驗,多年敏捷開發的項目管理經驗,現在國內科技企業擔任繫統架構師一職,主持企業軟件的繫統架構和等