SpringCloud | 通過電商業務場景讓你徹底明白SpringCloud核心元件的底層原理

JustJavaIt發表於2021-01-10

本文分為兩個部分:

  1. Spring Cloud"全家桶"簡單介紹。

  2. 通過實際電商業務場景,讓你徹底明白Spring Cloud幾個核心元件的底層原理。

Spring Cloud介紹

SpringCloud是關注全域性的服務協調治理框架,它利用 Spring Boot 的開發便利性簡化了分散式系統基礎設施的開發,提供瞭如服務註冊與發現、負載均衡、配置中心、訊息匯流排、熔斷器、資料監控等等元件,都可以用 spring boot 的開發風格做到一鍵啟動部署,所以叫它”全家桶”。

SpringCloud 的核心元件有哪些?

(1) Eureka  服務註冊與發現中心(服務治理)。

(2) Ribbon  負載均衡器,服務間發起請求的時候,基於Ribbon做負載均衡,從一個服務的多臺機器中選擇一臺。

(3) Feign  基於動態代理的服務呼叫工具,可以讓我們通過定義介面的方式直接呼叫其他服務的API。

(4) Hystrix  用於服務之間遠端呼叫時的容錯保護,熔斷器就好比家裡電路裝置的“保險”,當電路斷路,那麼“保險”裝置的“保險絲”就會被熔斷,從而達到斷開電路的效果,以防止不良後果。而Spring Cloud Hystrix 實現了熔斷器,執行緒隔離等一些列的服務保護功能,當Hystrix判定請求出現故障,會立馬對請求做出響應動作,不會繼續執行正常請求邏輯,請求執行緒也不會處於阻塞狀態,從而有效防止雪崩效應。

(5) Zuul  是API閘道器,是客戶端請求的入口,負責鑑權,路由等功能。

(6) Gateway  是新推出的基於Spring 5的響應式閘道器。

(7) Config  用於統一的配置管理。

(8) Bus  訊息匯流排。

(9) Sleuth  用於請求鏈路跟蹤。

(10) Stream  用來為微服務應用構建訊息驅動能力。

電商業務場景分析

接下來,我將通過一個實際的電商業務場景來剖析一下Spring Cloud中幾個核心元件(Eureka、Ribbon、Feign、Hystrix、Zuul......)底層的工作原理。

業務場景介紹

電商網站中,當使用者提交訂單並支付的過程中需要執行如下操作:

  • 將訂單狀態更新為“已支付”;

  • 同時扣減對應的商品庫存;

  • 隨後通知倉儲中心,進行發貨;

  • 以及給使用者增加購物積分;

    ...... 支付訂單的業務流程結束。

上述流程中,設計到訂單服務庫存服務倉儲服務積分服務之間的呼叫,呼叫過程如下圖:

整體業務架構圖如下:

 接下來我將分成多篇文章,圍繞上面的電商業務場景來具體分析Spring Cloud微服務架構中,各元件(EurekaRibbon,FeignHystrix,Zuul)發揮的作用和其背後的原理,以及各元件間是如何相互協作的。

 

 

希望本文章對您有幫助,您的轉發、點贊是我的創作動力,十分感謝。

掃描下方二維碼關注我,您會收到更多優質文章推送。

 

相關文章