内容簡介
本書從動态代理模式、Reactor模式、三大限流政策等知識入手,深入淺出地剖析Spring Cloud+Nginx系統架構的核心原理以及Web高并發開發。全書從基礎設計模式和基礎原理出發,理論與實戰相結合,系統和詳盡地介紹Spring Cloud + Nginx高并發核心程式設計。
本書共10章,前6章剖析Feign高并發RPC的底層原理,解析Hystrix高性能配置的核心選項,闡述Hystrix滑動視窗的核心原理。後4章介紹Nginx的核心原理及其配置,并結合秒殺場景實作Spring Cloud秒殺、Spring Cloud+Nginx Lua秒殺,為廣大Java開發者提供一個全面學習高并發開發的實戰案例。這些知識為廣大的Java工程師解決日常在背景開發中遇到的高并發、高性能問題打下堅實的技術基礎。

涵蓋解答高并發開發、大廠面試的核心難題涵蓋解答高并發開發、大廠面試的核心難題,有需要的朋友可以直接點這裡即可擷取!
從設計模式和基礎知識入手,抽絲剝繭,
将高深莫測的高并發核心知識講解得淺顯易懂
目錄
本書内容分為10章,分别說明如下:
第1章Spring Cloud+Nginx高并發核心程式設計的學習準備
第1章介紹Spring Cloud+Nginx高并發核心程式設計的學習準備,包括知識背景、開發和自驗證環境的準備。
Spring Cloud+Nginx相結合的分布式Web應用架構已經成為IT領域應用架構的事實标準。Spring Cloud+Nginx架構具有高度可伸縮、高可用、高并發的能力,這使其成為各新産品、新項目技術選型時的最佳架構之一,也成為老産品、老項目技術更新選型時的最佳架構之一。目前,無論是一線網際網路公司(如阿裡巴巴、百度、美團等)還是中小型網際網路企業,都廣泛地使用了Spring Cloud+ Nginx架構。
盡管Spring Cloud+Nginx架構已經成為主流架構,但廣大Java工程師對Spring Cloud微服務、Nginx反向代理核心知識的掌握還是不夠,大多數人僅停留在配置、使用階段。
第2章Spring Cloud入門實戰
第2章介紹Spring Cloud入門實戰,包括注冊中心、配置中心、微服務提供者的入門開發和配置。
Spring Cloud全家桶技術棧除了對Netflix OSS的開源元件進行了整合之外,還整合了一些選型中立的開源元件。比如,Spring CloudZooKeeper元件整合了ZooKeeper,提供了另一種方式的服務發現和配置管理。
Spring Cloud架構中的單體業務服務基于Spring Boot應用。Spring Boot是由Pivotal團隊提供的全新架構,它用于簡化新Spring應用的初始搭建以及開發過程。Spring Cloud和Spring Boot是什麼關系呢?
第3章Spring Cloud RPC遠端調用核心原理
第3章介紹Spring Cloud RPC遠端調用的核心原理,從設計模式的代理模式開始,抽絲剝繭、層層遞進地揭秘Spring Cloud Feign的底層RPC遠端調用的核心原理。
如果不了解Spring Cloud中的Feign核心原理,就不會真正地了解Spring Cloud的性能優化和配置優化,也就不可能做到真正掌握Spring Cloud。
本章從Feign遠端調用的重要元件開始,圖文并茂地介紹Feign本地JDK Proxy執行個體的建立流程以及Feign遠端調用的執行流程,徹底地解讀Spring Cloud的核心知識,使得廣大工程師知其然,更知其是以然。
第4章RxJava響應式程式設計架構
第4章介紹RxJava響應式程式設計架構。在Spring Cloud架構中涉及Ribbon和Hystrix兩個重要的元件,它們都用到了RxJava響應式程式設計架構。作為非常重要的程式設計基礎知識,本書特意設立本章對RxJava的原理和使用進行詳細介紹。
在Spring Cloud架構中涉及的Ribbon和Hystrix兩個重要的元件都使用了RxJava響應式程式設計架構,其作為重要的程式設計基礎知識,特開辟一章對RxJava的使用進行詳細的介紹。
Hystrix和Ribbon的代碼中大量運用了RxJava的API,對于有RxJava基礎的同學,學習Hystrix和Ribbon并不是一件難事。如果不懂RxJava,對于Hystrix和Ribbon的學習就會令人頭疼不已。
第5章Hystrix RPC保護的原理
第5章介紹Hystrix RPC保護的原理,從RxJava響應式程式設計架構的應用開始,溯本求源、循序漸進地揭秘Spring Cloud Hystrix的底層 RPC保護的核心原理。
本章從Spring Cloud架構中RPC保護的目标開始介紹,為大家揭開Hystrix RPC核心原理的神秘面紗,讓大家在使用Hystrix和對其進行配置時做到知其然,更知其是以然。
第6章微服務網關與使用者身份識别
第6章介紹微服務網關與使用者身份識别。微服務網關是微服務架構中不可或缺的部分,它統一解決Provider路由、負載均衡、權限控制等問題。
第7章Nginx/OpenResty詳解
第7章詳解Nginx/OpenResty,從高性能傳輸模式Reactor模型入手,尋蹤覓源、由淺入深地揭秘Nginx反向代理Web伺服器的核心知識,包括Reactor模型、Nginx的子產品化設計、Nginx的請求處理流程等。
Nginx(或OpenResty)在生産場景中使用的廣泛程度已經到了令人咂舌的地步。無論其實際的市場占用率如何,以筆者這些年所經曆的項目來看,其使用率為100%。
第8章 Nginx Lua程式設計
第8章介紹Nginx Lua程式設計。在高并發場景下,Nginx Lua程式設計是解決性能問題的利器,本章介紹Nginx Lua程式設計的基礎知識。
Nginx Lua程式設計主要的應用場景如下:
( 1 ) API網關:實作資料校驗前置、請求過濾、API請求聚合、AB測試、灰階釋出、降級、監控等功能,著名的開源網關Kong就是基于Nginx Lua開發的。
(2)高速緩存:可以對響應内容進行緩存,減少到後端的請求,進而提升性能。比如,Nginx Lua可以和Java容器(如Tomcat ) 、Redis整合,由Java容器進行業務處理和資料緩存,而Nginx負責讀緩存并進行響應,進而解決Java容器的性能瓶頸。
(3)簡單的動态Web應用:可以完成一些業務邏輯處理較少但是耗費CPU的簡單應用,比如模闆頁面的渲染。一般的Nginx Lua頁面渲染處理流程為:從Redis擷取業務處理結果資料,從本地加載XML/HTML.頁面模闆,然後進行頁面渲染。
(4)網關限流:緩存、降級、限流是解決高并發的三大利器,Nginx内置了令牌限流的算法,但是對于分布式的限流場景,可以通過Nginx Lua程式設計定制自己的限流機制。
第9章限流原理與實戰
第9章介紹限流原理與實戰。高并發系統用三把利器—緩存、降級和限流來保護系統,本章介紹計數器、令牌桶、漏桶這三大限流政策的原理和實作。
第10章Spring Cloud+Nginx秒殺實戰
第10章介紹Spring Cloud+Nginx秒殺實戰,通過這個綜合性的實戰案例說明緩存、降級和限流的應用。
在開發高并發系統時用三把利器——緩存、降級和限流來保護系統。緩存的目的是提升系統通路速度和增大系統能處理的容量,可謂是抗高并發流量的銀彈;降級是當服務出現問題或者影響到核心流程的性能時需要暫時屏蔽掉服務請求,待高峰或者問題解決後再打開;有些場景并不能用緩存和降級來解決,比如稀缺資源(如秒殺、搶購)、寫服務(如評論、下單)、頻繁的複雜查詢(如評論的最後幾頁),是以需要有一種手段來限制這些場景的并發請求量,即限流。
需要擷取的小夥伴可以直接點贊+關注後點這裡即可擷取!