- Spring Cloud微服務(wù)架構(gòu)進(jìn)階
- 朱榮鑫 張?zhí)?黃迪璇
- 1214字
- 2019-01-10 16:06:01
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ù)組件。
- 網(wǎng)絡(luò)協(xié)議工程
- 光網(wǎng)絡(luò)評估及案例分析
- Building Django 2.0 Web Applications
- 走進(jìn)物聯(lián)網(wǎng)
- Web Application Development with R Using Shiny
- 物聯(lián)網(wǎng)+BIM:構(gòu)建數(shù)字孿生的未來
- Windows Server 2003 Active Directory Design and Implementation: Creating, Migrating, and Merging Networks
- 2018網(wǎng)信發(fā)展報告
- 電力物聯(lián)網(wǎng)工程技術(shù)原理與應(yīng)用
- 計算機(jī)網(wǎng)絡(luò)技術(shù)及應(yīng)用
- 5G技術(shù)與標(biāo)準(zhǔn)
- Android UI Design
- Getting Started with nopCommerce
- Laravel Application Development Cookbook
- 數(shù)字王國里的虛擬人:技術(shù)、商業(yè)與法律解讀