正確識別SpringCloud及其相關(guān)組件
1.了解Spring Cloud

Spring Cloud是一個全家桶式的技術(shù)棧,用于構(gòu)建分布式微服務(wù)架構(gòu)的一站式解決方案。它利用了Spring Boot的開發(fā)便利性,集成了多種微服務(wù)架構(gòu)的落地技術(shù),如服務(wù)注冊與發(fā)現(xiàn)、配置中心、服務(wù)網(wǎng)關(guān)、智能路由、負(fù)載均衡、斷路器、監(jiān)控跟蹤和分布式消息隊列等等。通過Spring Cloud,開發(fā)人員可以簡化分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),并快速啟動服務(wù)或構(gòu)建應(yīng)用,同時能夠快速與云平臺資源進(jìn)行對接。
(1)查看SpringCloud版本
為了使用一項技術(shù),我們必須了解該技術(shù)的版本環(huán)境,并盡量避免使用過時的版本。下面是關(guān)于Spring Cloud版本的查看和命名規(guī)則的信息。
在過去,Spring Cloud的版本命名是根據(jù)倫敦地鐵站的英文名稱,并按照字母順序進(jìn)行排序。例如,之前的版本包括Angel(天使)、Brixton(布里斯頓)、Camden(卡姆登)、Dalston、Edgware、Finchley、Greenwich、Hoxton等。當(dāng)Spring Cloud的發(fā)布內(nèi)容達(dá)到一定程度或解決了重大bug后,會發(fā)布一個“services release”版本,簡稱SRX版本。例如,Greenwich.SR2表示發(fā)布的是Greenwich版本的第二個SRX版本。然而,在2020年,Spring Cloud改變了版本命名規(guī)則,采用了全新的“日歷化”版本命名方式。
日歷式命名:?
Spring Cloud 使用了 YYYY.MINOR.MICRO 的命名規(guī)則 ??? ? ? ?
YYYY:表示 4 位年份
MINOR:代表一個遞增的數(shù)字,每年以 0 開始遞增 ? ? ? ? ?
MICRO:代表版本號后綴,就和之前使用的 .0 類似于 .RELEASE 一樣,.2 類似于 .SR2
預(yù)發(fā)布版本的后綴分隔符也從 . 變更為 -。
如
2020.0.0-M1 和 2020.0.0-RC2 命名所示
同時,Spring Cloud 將停止給快照版本添加 BUILD- 前綴,
如:
2020.0.0-SNAPSHOT 命名所示
(2)查看Spring Boot版本
如果想了解Spring Boot的版本信息以及最新的特性和問題修復(fù),可以通過以下方式獲?。?/p>
Git源碼地址:https://github.com/spring-projects/spring-boot/releases。在這個地址上,你可以瀏覽到Spring Boot的所有發(fā)布版本,并查看每個版本的更新內(nèi)容。

官方網(wǎng)站:你也可以訪問Spring官方網(wǎng)站,查看有關(guān)Spring Boot版本信息的頁面。

(3)技術(shù)版本選型??
在選擇使用Spring Cloud和Spring Boot時,需要注意它們之間有嚴(yán)格的版本依賴關(guān)系。你可以通過以下途徑來查看相應(yīng)的版本對照關(guān)系:

Spring Cloud項目官網(wǎng):https://spring.io/projects/spring-cloud。在這個頁面上,你可以找到與Spring Boot不同版本對應(yīng)的Spring Cloud版本。
更詳細(xì)的版本信息:你還可以訪問https://start.spring.io/actuator/info來獲取更詳細(xì)的版本信息。在該地址返回的JSON中,你可以清晰地看到每個版本之間的詳細(xì)依賴關(guān)系。

2.Spring Cloud組件? ?

(1)Spring Cloud Netflix 組件? ?
Spring Cloud Netflix是一個基于Spring Cloud的框架,用于構(gòu)建微服務(wù)架構(gòu)中的服務(wù)注冊與發(fā)現(xiàn)、網(wǎng)關(guān)和負(fù)載均衡等組件。以下是Spring Cloud Netflix包含的主要組件及其功能:
Eureka:服務(wù)注冊和發(fā)現(xiàn)。它提供了一個服務(wù)注冊中心和服務(wù)發(fā)現(xiàn)的客戶端,還有一個便捷的界面用于查看所有已注冊的服務(wù)。通過Eureka的服務(wù)發(fā)現(xiàn)客戶端,各個服務(wù)可以將自身注冊到Eureka服務(wù)器上。
Zuul:網(wǎng)關(guān)。所有客戶端請求都通過這個網(wǎng)關(guān)訪問后臺的服務(wù)。Zuul可以根據(jù)路由配置來確定某個URL由哪個服務(wù)處理,并從Eureka獲取注冊的服務(wù)進(jìn)行請求轉(zhuǎn)發(fā)。
Ribbon:負(fù)載均衡。當(dāng)Zuul網(wǎng)關(guān)將請求發(fā)送給某個服務(wù)應(yīng)用時,如果該服務(wù)啟動了多個實例,Ribbon會根據(jù)一定的負(fù)載均衡策略選擇其中一個服務(wù)實例進(jìn)行請求轉(zhuǎn)發(fā)。
Feign:服務(wù)客戶端。當(dāng)服務(wù)之間需要相互訪問時,可以使用RestTemplate或者Feign客戶端。Feign客戶端默認(rèn)使用Ribbon來實現(xiàn)負(fù)載均衡。
Hystrix:監(jiān)控和斷路器。通過在服務(wù)接口上添加Hystrix注解,可以實現(xiàn)對該接口的監(jiān)控和斷路器功能。
Hystrix Dashboard:監(jiān)控面板。提供一個界面,用于監(jiān)控各個服務(wù)調(diào)用所消耗的時間等信息。
Turbine:監(jiān)控聚合。在使用Hystrix進(jìn)行監(jiān)控時,需要逐個打開每個服務(wù)實例的監(jiān)控信息進(jìn)行查看。而Turbine可以將所有服務(wù)實例的監(jiān)控信息聚合到一個統(tǒng)一的地方進(jìn)行查看,避免了逐個查看頁面的繁瑣過程。
以上組件構(gòu)成了Spring Cloud Netflix框架,為微服務(wù)架構(gòu)中的服務(wù)治理和調(diào)用提供了便利和支持。
(2)Spring Cloud Alibaba 組件? ?
Spring Cloud Alibaba是在Spring Cloud Netflix版的基礎(chǔ)上發(fā)展起來的一套功能組件。它整合了一些重要的組件,如Nacos、Sentinel、RocketMQ、Dubbo、Seata等,同時還包括阿里云的商業(yè)化產(chǎn)品,如Alibaba Cloud OSS、Alibaba Cloud SchedulerX和Alibaba Cloud SMS。
Nacos是一個功能強大的服務(wù)注冊、配置中心和負(fù)載均衡工具。它提供了圖形化界面,并簡化了微服務(wù)架構(gòu)的復(fù)雜度。
Sentinel是一款優(yōu)秀的服務(wù)保護組件,相較于Hystrix功能更加強大而且使用更加友好。它以流量作為切入點,可以從流量控制、熔斷降級、系統(tǒng)負(fù)載保護等多個維度來保護服務(wù)的穩(wěn)定性。
RocketMQ是一款開源的分布式消息系統(tǒng),基于高可用分布式集群技術(shù)。它提供低延時的、高可靠的消息發(fā)布與訂閱服務(wù)。
Dubbo是一個高性能的Java RPC框架,可以幫助實現(xiàn)微服務(wù)之間的遠(yuǎn)程調(diào)用。
Seata是阿里巴巴開源的一個高性能微服務(wù)分布式事務(wù)解決方案。它易于使用并且具有出色的性能。
此外,Spring Cloud Alibaba還整合了阿里云的商業(yè)化產(chǎn)品,如Alibaba Cloud OSS、Alibaba Cloud SchedulerX和Alibaba Cloud SMS。
Alibaba Cloud OSS是阿里云提供的一項云存儲服務(wù),具有海量、安全、低成本和高可靠性的特點。它可以讓用戶在任何應(yīng)用、任何時間和任何地點存儲和訪問各種類型的數(shù)據(jù)。
Alibaba Cloud SchedulerX是阿里中間件團隊開發(fā)的一款分布式任務(wù)調(diào)度產(chǎn)品。它提供秒級、精準(zhǔn)、高可靠和高可用的定時任務(wù)調(diào)度服務(wù),基于Cron表達(dá)式。
Alibaba Cloud SMS是一項覆蓋全球的短信服務(wù),具有友好、高效和智能的互聯(lián)化通訊能力。它可以幫助企業(yè)快速構(gòu)建客戶觸達(dá)通道。
需要注意的是,schedulerX、SMS、OSS等是主要針對阿里云的商業(yè)化產(chǎn)品,因此不再進(jìn)行過多介紹。
3、SpringCloud其他相關(guān)組件? ?
除了Netflix和Alibaba貢獻(xiàn)了相關(guān)組件,在整個SpringCloud生態(tài)中,Spring本身也貢獻(xiàn)了許多組件:
Spring Cloud 本身其實只是一套微服務(wù)規(guī)范,并不是一個拿來即可用的框架,Spring Cloud Netflix 和Spring Cloud Alibaba是為開發(fā)者提供的這套規(guī)范的一種實現(xiàn)方式。

關(guān)于SpringCloud相關(guān)組件的原理與使用,在中培IT學(xué)院微服務(wù)及高并發(fā)、高可用架構(gòu)設(shè)計與最佳實踐培訓(xùn)班中有全面的講解,課程還詳細(xì)介紹了從單體應(yīng)用向微服務(wù)架構(gòu)遷移的實踐經(jīng)驗和微服務(wù)架構(gòu)設(shè)計等相關(guān)知識技能,可以幫助學(xué)員掌握微服務(wù)、高并發(fā)領(lǐng)域的核心技術(shù),是技術(shù)人員職場提升的良好選擇。
期待您的咨詢!
