91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Cloud 的核心架構原理是怎么樣的

發布時間:2021-12-03 16:22:40 來源:億速云 閱讀:131 作者:柒染 欄目:大數據

Spring Cloud 的核心架構原理是怎么樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

最近在補一些分布式系列的面試內容,提前幾個月做做準備吧,你們懂的,也跟大家分享分享。現在分布式系統基本上都是標配了,如果你現在還在玩兒單機,沒有接觸過這些東西的話,權當是為你打開一扇新的大門吧。

大的單體項目有多蛋疼

以前我們做單機系統的時候,所有的代碼都在一個項目里面,只是不同的模塊按照包名來劃分的。我們以前做的一個某省的教育項目,有學生信息和就業系統、有高校培訓系統、有一個人資系統等一共六個,4個小伙伴都在一個代碼里面進行開發,各個系統之間有一定的聯系,但是大部分是不相關的,但管理頁面在一起。

那時候我們都在一個項目里面碼代碼,每次啟動好幾分鐘,還有就是包版本沖突問題,搞得真是蛋疼。大家經歷過大型的單體項目開發,相信你有體會的。

還有各系統的使用量也不一樣,有的比較大。比如學生信息和就業系統,面向的是所有高校,特別是快畢業那段時間,每個學校會上報就業率等信息,還有就是打印報到證呀什么的。有的系統就使用比較少,比如人資、培訓系統 使用的基本上就教育廳的一些員工,和部分老師,流量不大,勉強能扛得住。

模擬業務背景

大點的企業,比如做電商的,用戶幾十萬的,日活幾萬的,背后好幾十人上百人的團隊在支撐開發,單體系統就不太合適了。

比如現在有一個下單買東西的需求,就需要訂單系統、庫存系統、倉庫系統和積分系統 等來進行處理。如下圖:

Spring Cloud 的核心架構原理是怎么樣的

訂單系統、庫存系統、倉儲和積分系統都是部署到不同的機器上的。

當用戶下單了,那么訂單服務會發進行扣件庫存、通知倉儲系統要發貨、通知積分系統累加積分的操作。

如果我們此時需要用到 Spring Cloud 來做一個分布式架構的話,那么我們需要什么東西呢?每個東西都是干嘛的呢?

 

如果使用 Spring Cloud 來實現,需要哪些組件?

 
Eureka

首先,我們需要一個注冊中心 Eureka ,主要負責每個服務的注冊和發現。

每個微服務中都有一個Euraka client組件,專門負責將這個服務的服務id(serviceId)、ip、端口等信息注冊到Eureka server中。

Euraka Server是一個注冊中心,該組件內部維護了一個注冊表,保存了各個服務所在的機器ip和端口號等信息。

 
Feign

其次每個服務還需要一個遠程服務調用的組件 Feign ,他主要負責與其他服務建立連接,構造請求,然后發起請求來調用其他服務來獲取數據。

 
Ribbon

然后我們一個服務可能會部署很多臺機器,那么我們使用Feign 去調用這個服務的時候,到底把請求發送到哪臺機器上去呢?此時我們就需要一個組件來根據一定的策略來選擇一臺機器。不管怎么選的,總之得選一臺機器給 Feign 去調用就好了。

這個組件就是 Ribbon,Ribbon 主要負責就是負載均衡。Ribbon 會定期去從Eureka 注冊中心拉取注冊中心,緩存到本地,每次發起遠程調用的時候,Ribbon 就會從 Eureka 注冊表拉取下來的數據中挑選一個機器讓 Feign 來發起遠程調用。

 
Zuul

我們這么多的微服務,如果一個服務一個IP,使用方都需要進行調用的話,是不是得知道每一個服務的IP地址才行呢?那得記住多少才行呀,多不好管理。

如果有一個統一的地址,然后根據不同的請求路徑來跟我進行轉發多少是不,比如 /user/* 是轉發到用戶服務 ,/product/* 是轉向到商品服務等等。我使用的時候,只需要訪問同一個IP ,只是路徑不一樣,就行了。

Spring Cloud 也給我們提供了一個組件,那就是 Zuul ,他是一個網關,就是負責網絡的路由的。每個請求都經過這個網關,我們還可以做統一鑒權等等很多事情。

 
Hystrix

還有一個東西也得說一下,就是 Hystrix,它是一個隔離、熔斷以及降級的一個框架 。

在微服務的相互調用過程中,可能會出現被調用服務錯誤或者超時的情況,從而導致整個系統崩潰不可用,也就是我們常說的服務雪崩問題,Hystrix 的存在就是為了解決這種問題的。

 

整體架構

我們按照以上使用到的這些組件,來往下單這個流程來套一下:

Spring Cloud 的核心架構原理是怎么樣的  

整個調用流程:

  1. 首先每個服務啟動的時候都需要往注冊中心進行注冊。

  2. 用戶先對網關發起下單請求,網關收到請求后發現呃,是下單操作,要到訂單系統,然后把請求路由到訂單系統。

  3. 訂單系統啪啦啪啦一頓操作,然后通過 Feign 去調用 庫存系統減庫存,通知倉儲服務發貨,調用積分系統加積分。

  4. 在發起調用之前,訂單系統還得通過Ribbon 去注冊中心去拉取各系統的注冊表信息,并且挑一臺機器給 Feign 來發起網絡調用。

看完上述內容,你們掌握Spring Cloud 的核心架構原理是怎么樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南皮县| 旬阳县| 龙州县| 兴宁市| 巴林左旗| 五莲县| 浮山县| 大石桥市| 大邑县| 安康市| 元阳县| 广汉市| 扶风县| 揭阳市| 柳江县| 衡水市| 高台县| 新邵县| 曲沃县| 普定县| 杭锦后旗| 嘉义市| 福安市| 乌恰县| 景德镇市| 天气| 武城县| 万源市| 青海省| 常山县| 颍上县| 黔江区| 射洪县| 拉孜县| 华阴市| 榆中县| 英德市| 清镇市| 谢通门县| 义马市| 仙居县|