學AI,好工作 就找北大青鳥
關注小青 聽課做題,輕松學習
周一至周日
4000-9696-28

火的一塌糊涂的SpringCloud到底是個啥?

來源:北大青鳥總部 2023年08月17日 15:08

摘要: 時至今日,Springcloud幾乎已經是互聯(lián)網公司的標配了,但是很多同學可能對SpringCloud還不是特別的了解,微服務和SpirngCloud經常傻傻分不清楚,今天的我們的文章是介紹下SpringCloud生態(tài)。

時至今日,Springcloud幾乎已經是互聯(lián)網公司的標配了,但是很多同學可能對SpringCloud還不是特別的了解,微服務和SpirngCloud經常傻傻分不清楚,今天的我們的文章是介紹下SpringCloud生態(tài);順便把微服務的和SpirngCloud的關系,在跟大家解釋下;因為要想理解SpringCloud,怎么也離不了微服務。

因為SpringCloud火爆的大背景就是微服務架構的火爆,接下來我們就按照先說微服務,再說SpringCloud的順序,給大家一一介紹。


· 微服務

提到微服務相信大家都不太陌生,互聯(lián)網經過這么多年的發(fā)展,從最初的草莽時代,到現在巨頭林立的階段,很多領域都已經相對完善。

從早期的單體架構、集群架構、分布式架構、到現在基本人人都是微服務架構,這里我們先通過幾張圖來看下互聯(lián)網技術架構的演進。


· 單體架構

我們都知道互聯(lián)網剛開始發(fā)展的時候,用戶量是非常少的,能接觸到網絡的人都是極其有限的,所以這個時候的互聯(lián)網的架構師是這樣的,只有一個服務器,一個數據庫。



· 集群架構

緊接著,隨著互聯(lián)網的發(fā)展,用戶量的增加(就是能玩的電腦的人多了),原來的這個單體的架構支撐不了這么大的用戶訪問量了,之前一個服務器,現在網站動不動就掛了,這個課怎么得了;大佬一咬牙,一跺腳,一個服務器不行,加多來幾個服務器,就這么一不小心互聯(lián)網的技術架構就變成了集群架構。



· 分布式架構

本來一切都這么安靜發(fā)生著,好像宇宙大和諧的樣子,用戶感覺網速嗖嗖的,大佬們也感覺我們的想法真牛逼,簡直可以改變世界。可是沒想到,突然互聯(lián)網迎來了前所未有的大發(fā)展,因為多年前有以為老人在中國的南海邊畫了一個圈。

這個時候各位技術大佬可是坐不住了,網站總是卡死可怎么辦,以為增加的服務器根本解決不了問題,之前所有的業(yè)務都在同一個服務器中,非常復雜。這個時候就開始把之前耦合在一起的業(yè)務給拆分來了,比如:訂單模塊、用戶模塊等;這樣互聯(lián)網的技術架構也就演變。



· 微服務架構

本來分布式架構基本滿足了現在互聯(lián)網的發(fā)展,一切都這么安靜的發(fā)生著,但是大廠的可是永遠不那么安分,依然進行著創(chuàng)新,想要進一步提高效率,所以之前僅從業(yè)務單元進行拆分,還是滿足不了大廠的需求,所以就對業(yè)務進行了更加細粒度的拆分,而且每一個服務都可以獨立部署,這就就是我們現在所說的微服務。



· SpringCloud

好了,到這里互聯(lián)網的技術架構演變基本就這么回事兒,最終實現微服務的技術就是我們接下來要介紹SpringCloud,要說SpringCloud是個啥,先買個關子,且聽我慢慢道來。

SpringCloud是微服務架構的集大成者,將一系列優(yōu)秀的組件進行了整合(大雜燴)已經在國內眾多大中小型的公司有實際應用案例。許多公司的業(yè)務線全部擁抱SpringCloud,部分公司選擇部分擁抱SpringCloud.

之所以說它是大雜燴,我們可以通過下面這張圖來感受一下,因為它幾乎就包攬了所有微服務架構所需的技術組件。這里再給大家透露一個小秘密,就是SpringCloud中的很多組件,都是一家電影公司開源的;你能想象嗎?一家電影公司的技術實力都這么強,我們真的應該反思反思了。



SpringCloud中組件很多,并且還在擴充中,所以我們就介紹幾個常用的組件:

  • Eureka:服務治理組件,包含服務注冊與發(fā)現

  • Feign:聲明式服務調用組件

  • Ribbon:客戶端負載均衡的服務調用組件

  • Hystrix:容錯管理組件,實現了熔斷器

  • Zuul:網關組件,提供智能路由、訪問過濾等功能

  • Config:分布式配置中心組件,用來統(tǒng)一配置文件


通過這么多核心的組件就可以輕松的搭建起一個個微服務系統(tǒng)架構,由于都是一個生態(tài)內的技術,所以很多技術都很兼容,極大的降低了開發(fā)的門開,所以現在基本是互聯(lián)網公司的,都上微服務架構了,接下來我們就挨個來看下這幾個組件吧。


· Eureka服務治理組件

Eureka是Netflix開發(fā)的服務治理框架,是一個基于REST的服務,主要用于服務間的注冊發(fā)現、負載均衡等。



· Feign聲明式服務調用組件

Feign是一個聲明式的web服務客戶端,一種負載均衡的HTTP客戶端,使用Feign調用API就像調用本地方法一樣,從避免了調用目標微服務時,需要不斷的解析/封裝json數據的繁瑣,通常是和Ribbon一起實現。



· Ribbon負載均衡組件

Ribbon 是一個基于HTTP 和 TCP的 客服端負載均衡工具,包括Feign 提供的聲明式服務調用也是基于該Ribbon 實現的。Ribbon默認提供很多種負載均衡算法,例如輪詢、隨機等等。我們也可以根據自己的需要自定義的負載均衡策略。



· Hystrix熔斷限流組件

Hystrix這個組件就有點復雜了,因為它可能沒有具體的實現某項功能,他主要的作用提高系統(tǒng)的高可用性和穩(wěn)定性,在分布式系統(tǒng)環(huán)境下,服務間各種依賴,一個業(yè)務調用通常依賴多個基礎服務是非常常見的。而Hystrix就起到了監(jiān)控服務,以及服務容錯的作用,如果處理問題不及時,就很可能出現雪崩,后果不堪設想。


· Zuul服務網關組件

Zuul是微服務API網關,也是用戶訪問的第一道關,所有用戶的請求都會經過Zuul才能到達后端應用程序。Zuul提供了動態(tài)路由、監(jiān)控、彈性負載和安全功能。Zuul底層利用各種filter實現如下功能:

  • 認證和安全,識別每個需要認證的資源,拒絕不符合要求的請求。

  • 性能監(jiān)測,在服務邊界追蹤并統(tǒng)計數據,提供精確的生產視圖。

  • 動態(tài)路由,根據需要將請求動態(tài)路由到后端集群。

  • 壓力測試,逐漸增加對集群的流量以了解其性能。

  • 負載卸載,預先為每種類型的請求分配容量,當請求超過容量時自動丟棄。

  • 靜態(tài)資源處理,直接在邊界返回某些響應。


所以在網關這一層,除了核心的路由功能外,也是限流的一種手段。



· Config分布式配置中心組件

Config是一個解決分布式系統(tǒng)的配置管理方案。它包含了Client和Server兩個部分,server提供配置文件的存儲、以接口的形式將配置文件的內容提供出去,client通過接口獲取數據、并依據此數據初始化自己的應用。工作中也經常和攜程開源的Apllo一起使用。



好了,到這里就基本給大家介紹了SpringCloud的幾個核心組件,如果我們把這些核心組件搞定后,就基本把微服務的核心知識搞定啦!


熱門班型時間
人工智能就業(yè)班 即將爆滿
AI應用線上班 即將爆滿
UI設計全能班 即將爆滿
數據分析綜合班 即將爆滿
軟件開發(fā)全能班 爆滿開班
網絡安全運營班 爆滿開班
報名優(yōu)惠
免費試聽
課程資料
官方微信
返回頂部
培訓課程 熱門話題 站內鏈接