官术网_书友最值得收藏!

2.1 Spring Cloud架構(gòu)

Spring社區(qū)推出Spring Cloud框架與其自身的理念演變密切相關(guān)。Spring是于2003年興起的一個輕量級的Java開發(fā)框架,但是隨著其不斷地發(fā)展壯大,框架的代碼規(guī)模越來越龐大,集成的項目越來越多,配置文件也變得越來越混亂,慢慢地背離最初的理念。如今,分布式系統(tǒng)和微服務(wù)架構(gòu)等更多新的技術(shù)理念的陸續(xù)出現(xiàn),催生了這樣一種想法:Spring社區(qū)需要一款框架來改善以前的開發(fā)模式并適應(yīng)微服務(wù)開發(fā)環(huán)境。Spring Cloud也就此應(yīng)運(yùn)而生。

1.版本說明

Spring Cloud不同于其他獨(dú)立項目,它是擁有眾多子項目的項目集合。其所有版本由版本名和版本號組成,如Finchley M9和Edgware SR3。Finchley和Edgware就是版本名,名字是以倫敦地鐵站命名并且遵循字母順序(第一個release版本為Angel,第二個為Brixton),而M9和SR3是版本號。M是里程碑(milestone)的含義,M9就是指第九個里程碑。SR(Service Releases)則代表著穩(wěn)定版本,后邊一般都會有一個遞增的數(shù)字,例如SR3就是指第三個發(fā)布版本。圖2-1為Spring Cloud包含的組件的詳細(xì)列表,最新的版本為Finchley RELEASE,基于Spring Boot 2.0.3, Spring Boot 2.X相對之前版本有較大的變動。本書的源碼分析根據(jù)最新的Finchley RELEASE展開。

圖2-1 Spring Cloud組件及其對應(yīng)的版本

2. Spring Cloud組成

Spring Cloud是在Spring Boot的基礎(chǔ)上構(gòu)建的,用于簡化分布式系統(tǒng)構(gòu)建的工具集,為開發(fā)人員提供快速建立分布式系統(tǒng)中一些常見的組件。Spring Cloud技術(shù)體系如圖2-2所示。

圖2-2 Spring Cloud技術(shù)體系

Spring Cloud包含的組件眾多,各個組件都有各自不同的特色和優(yōu)點(diǎn),為用戶提供豐富的選擇:

□ 服務(wù)注冊與發(fā)現(xiàn)組件:Eureka、Zookeeper和Consul等。本書將會重點(diǎn)講解Eureka, Eureka是一個REST風(fēng)格的服務(wù)注冊與發(fā)現(xiàn)的基礎(chǔ)服務(wù)組件。

□ 服務(wù)調(diào)用組件:Hystrix、Ribbon和OpenFeign;其中Hystrix能夠使系統(tǒng)在出現(xiàn)依賴服務(wù)失效的情況下,通過隔離系統(tǒng)依賴服務(wù)的方式,防止服務(wù)級聯(lián)失敗,同時提供失敗回滾機(jī)制,使系統(tǒng)能夠更快地從異常中恢復(fù);Ribbon用于提供客戶端的軟件負(fù)載均衡算法,還提供了一系列完善的配置項如連接超時、重試等;OpenFeign是一個聲明式RESTful網(wǎng)絡(luò)請求客戶端,它使編寫Web服務(wù)客戶端變得更加方便和快捷。

□ 路由和過濾組件:包括Zuul和Spring Cloud Gateway。Spring Cloud Gateway提供了一個構(gòu)建在Spring生態(tài)之上的API網(wǎng)關(guān),其旨在提供一種簡單而有效的途徑來發(fā)送API,并為他們提供橫切關(guān)注點(diǎn),如:安全性、監(jiān)控指標(biāo)和彈性。

□ 配置中心組件:Spring Cloud Config實現(xiàn)了配置集中管理、動態(tài)刷新等配置中心的功能。配置通過Git或者簡單文件來存儲,支持加解密。

□ 消息組件:Spring Cloud Stream和Spring Cloud Bus。Spring Cloud Stream對于分布式消息的各種需求進(jìn)行了抽象,包括發(fā)布訂閱、分組消費(fèi)和消息分區(qū)等功能,實現(xiàn)了微服務(wù)之間的異步通信。Spring Cloud Bus主要提供了服務(wù)間的事件通信(如刷新配置)。

□ 安全控制組件:Spring Cloud Security基于OAuth2.0開放網(wǎng)絡(luò)的安全標(biāo)準(zhǔn),提供了微服務(wù)環(huán)境下的單點(diǎn)登錄、資源授權(quán)和令牌管理等功能。

□ 鏈路監(jiān)控組件:Spring Cloud Sleuth提供了全自動、可配置的數(shù)據(jù)埋點(diǎn),以收集微服務(wù)調(diào)用鏈路上的性能數(shù)據(jù),并可以結(jié)合Zipkin進(jìn)行數(shù)據(jù)存儲、統(tǒng)計和展示。

除了上述組件之外,Spring Cloud還提供了命令行工具Spring Cloud Cli和集群工具Spring Cloud Cluster。Spring Cloud Cli提供了以命令行和腳本的方式來管理微服務(wù)及Spring Cloud組件的方式,Spring Cloud Cluster提供了集群選主、分布式鎖和一次性令牌等分布式集群需要的技術(shù)組件。

主站蜘蛛池模板: 楚雄市| 大英县| 德清县| 额济纳旗| 都安| 吴桥县| 长葛市| 竹溪县| 临漳县| 梁山县| 西畴县| 博乐市| 新干县| 黄冈市| 周宁县| 康保县| 九江市| 建瓯市| 夏邑县| 宁陵县| 大洼县| 宿州市| 林芝县| 类乌齐县| 华宁县| 连平县| 双峰县| 寿宁县| 榆社县| 石屏县| 乐陵市| 汪清县| 于都县| 台东县| 施秉县| 营口市| 花垣县| 公安县| 香港| 白玉县| 临泽县|