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

溫馨提示×

溫馨提示×

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

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

搞清楚Spring Cloud架構原理的這4個點,輕松應對面試官

發布時間:2020-04-07 18:17:21 來源:網絡 閱讀:513 作者:架構師追風 欄目:編程語言

前言

現在分布式系統基本上都是標配了,如果你現在還在玩兒單機,沒有接觸過這些東西的話,權當是為你打開一扇新的大門吧。

搞清楚Spring Cloud架構原理的這4個點,輕松應對面試官

大的單體項目

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

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

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

模擬業務背景

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

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

搞清楚Spring Cloud架構原理的這4個點,輕松應對面試官

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

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

如果我們此時需要用到 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架構原理的這4個點,輕松應對面試官

整個調用流程:

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

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

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

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

總結

OK,以上就是整個Spring Cloud 的核心架構了,面試題額,別錯過了,朋友。這只是給大家一些普及,面試的時候遇到了可以這么去說的。

搞清楚Spring Cloud架構原理的這4個點,輕松應對面試官

回過頭來再看看這8道Spring Cloud微服務面試題你能回答對幾道?

1.什么是 Spring Cloud?

2.使用 Spring Cloud 有什么優勢?

3.服務注冊和發現是什么意思?Spring Cloud 如何實現?

4.負載平衡的意義什么?

5.什么是 Hystrix?它如何實現容錯?

6.什么是 Hystrix 斷路器?我們需要它嗎?

7.什么是 Netflix Feign?它的優點是什么?

8.什么是 Spring Cloud Bus?我們需要它嗎?

最后

歡迎大家一起交流,喜歡文章記得點個贊喲,感謝支持!


向AI問一下細節

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

AI

延庆县| 石狮市| 黄梅县| 长泰县| 舒兰市| 迁西县| 崇阳县| 永兴县| 宣化县| 偃师市| 安宁市| 明溪县| 丹巴县| 乐东| 长垣县| 望谟县| 寿宁县| 宾川县| 静海县| 安溪县| 罗甸县| 湟中县| 两当县| 阿图什市| 永定县| 松阳县| 当涂县| 富裕县| 新民市| 隆子县| 赤水市| 石景山区| 舟曲县| 东阳市| 阿拉尔市| 松江区| 西盟| 孝昌县| 丹凤县| 遂昌县| 汽车|