SpringCloud的優(yōu)勢、工具套件介紹、以及版本的說明
SpringCloud的優(yōu)勢
談到微服務的設計和開發(fā),大家可能會想到 Netflix OSS Spring Cloud Service CombService Mesh 等技術。
Ne ix oss 可以說是最早使用微服務架構的一個開源技術,它的注冊中心( Eureka )、負載均衡(Ribbon ),以及智能路由(Zuul) 等組件至今仍是 Spring Cloud 框架中的一些重要組成部分。
Spring Cloud 是開發(fā)人員比較熟悉的一個微服務開發(fā)框架, Spring Cloud 社區(qū)也是一個粉絲眾多,并且至今仍然非常活躍的微服務社區(qū)。
Service Comb 是華為開發(fā)的一個可以支持多語言的開發(fā)框架,目前可以支持 Go Java開發(fā)語言。
Service Mesh 是一種基于基礎設施層、實現(xiàn)服務之間快速通信的新的微服務開發(fā)技術。
Spring Cloud 是在應用層實現(xiàn)微服務,其功能齊全的工具組件為進行微服務設計和開發(fā)提供了非常便利的條件,所以絕大多數(shù)開發(fā)人員都選擇使用 Spring Cloud 實施微服務架構設計。
正因為如此, Spring Cloud 的生態(tài)體系非常龐大,各種大大小小的社區(qū)都非?;钴S。
Sp ig Cloud 是由 Pivotal 團隊提供的一個用來開發(fā)微服務的開源工具集。在使用這一工具集開發(fā)微服務時,我們可以非常方便地處理諸如服務注冊與治理、服務間通信與集群管理、高可用和橫向擴展等問題。
Spring Cloud 官網(wǎng)中可以看到下面這段描述,它概括地介紹了這一工具集所包含的一些組件和功能。
“ Spring Cloud 為開發(fā)人員提供了快速構建分布式系統(tǒng)時的一些常見模式的工具(如配直管理、服務發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、一次性令牌、全局鎖、(集群)領導選舉、分布式會話、群集狀態(tài)等).分布式系統(tǒng)的協(xié)調產(chǎn)生了樣板式的模式,使用 SpringCloud 的開發(fā)人員可以方便地使用這些模式的服務和應用程序,它們將在任何分布式環(huán)境中都能很好地工作,包括開發(fā)人員自己的筆記本電腦、裸機數(shù)據(jù)中心和 Cloud Foundry 等托管平臺?!?/p>
實際上,在使用 Sp ig Cloud 這套工具集開發(fā)一個特定的微服務應用時,我們并不需要特別關注所有這些組件的工作方式和原理,只需專注于某一項特定功能的開發(fā)就可以了。
Spring Cloud 工具套件介紹
Spring Cloud工具套件是一個龐大的家族,并且它對第三方的工具有很好的兼容性。限于篇幅,我們無法對所有組件進行一一介紹,所以這里只對一些核心的和常用的組件進行一個簡要說明,幫助讀者從整體上認識和了解這個工具套件。Spring Cloud 工具套件的思維導圖如圖 1-4 所示。

( 1) Spring Cloud Netflix
這是 Spring Cloud 工具套件的核心,包含 Netflix OSS 的一些基礎組件,如 Eureka Hystrix,Zuul Archaius Ribbon Turbine 等,其中
? Eureka 是云端服務發(fā)現(xiàn),用于云端服務注冊與定位,以實現(xiàn)云端服務發(fā)現(xiàn)和故障轉移等服務治理。
? Hys 是一個可提供斷路器、容錯機制、降級機制等功能的管理工具,通過這一工具可以實現(xiàn)對第三方庫的延遲,以及對故障轉移提供全面的監(jiān)測和調控。
? Zuul 是在云平臺上提供動態(tài)路由、監(jiān)控和安全等邊緣服務的管理框架。Zuul 相當于設備和微服務應用的階 網(wǎng)站后端所有請求的前門。
? Archaius 是一個配置管理 API ,提供動態(tài)類型化屬性、線程安全配置操作、輪詢框架、回調機制等功能。
? ribbon提供云端負載均衡管理,有多種負載均衡策略可供選擇,能自動配合服務發(fā)現(xiàn)和斷路器使用。
Turbine 是聚合服務發(fā)送事件流數(shù)據(jù)的一個工具,使用可配置方式監(jiān)控集群中服務的運行情況。
( 2) Spring Cloud Bus
一個事件、消息總線,用于在集群中傳播狀態(tài)變化,可與 Spring Cloud Config 聯(lián)合使用,實現(xiàn)動態(tài)配置管理。
(3) Sp ig Cloud Cluster
提供 Leadership 選舉 ZooKeeper Redis Hazeleast Consul 常見狀態(tài)模式的抽象和實現(xiàn)。
( 4) Spring Cloud Consul
封裝了 Consul 操作, Consul 是→個服務發(fā)現(xiàn)與配置工具,可以與 Docker 容器無縫集成。
( 5 ) Spring Cloud Security
基于 Spring Security 的安全工具包,可以為應用添加安全控制。
(6) Sp ig Cloud Sleuth
日志收集工具包,封裝了 Dapper log-based 追蹤,以及 Zipkin HTrace 操作,為微服務應用實現(xiàn)了一種分布式追蹤解決方案。
( 7) Spring Cloud Data Flow
大數(shù)據(jù)操作工具,是 Spring XD 的替代產(chǎn)品。它是一個混合計算模型,結合了流數(shù)據(jù)與批量數(shù)據(jù)的處理方式。
( 8) Spring Cloud earn
數(shù)據(jù)流操作開發(fā)包,封裝了與 Redis Rabbit Kafka 等發(fā)送和接收消息的方法。
( 9) Spring Cloud Starters
使用 Spring Boot 方式啟動項目工具包,為 Spring Cloud 提供開箱即用的依賴管理。
( 10) Spring Cloud Pipeline
提供了一個有步驟的固定部署管道,以確保應用程序可以以零停機的方式部署,并且很容易在出錯后進行回滾。
Spring Cloud 工具套件除自身包含豐富的組件庫外,對于第三方庫,也具有很好的兼容性。
借助于 Spring Cloud Consul ,我們可以很方便地使用 Consul 搭建注冊中心,在提供服務注冊與發(fā)現(xiàn)的基礎上,實現(xiàn)遠程配置管理功能。
下面兩個組件是由第三方提供的。
( 1 ) Spring Boot Adrnin
Spring Boot Adrnin 通過 Spring Boot 提供的監(jiān)控接口,如/health、匈fo 等,加上對當前處于活躍狀態(tài)的會話數(shù)量、當前應用的并發(fā)數(shù)、延遲及其他度量信息等,可以對分布式環(huán)境中的Spring Cloud 應用實現(xiàn)實時的全程監(jiān)控。
( 2) zipkin-dependencies
zipkin-dependencies 是由第三方封裝的可運行應用程序包,可以對 Spring Cloud 應用的運行和調用關系進行全程跟蹤,從而為故障診斷和檢查提供幫助。它可以使用 Web 方式或與 Kafka結合使用的方式傳遞日志數(shù)據(jù),然后自動分析數(shù)據(jù),生成應用之間的調用路線圖。
在應用及其接口的調用中, Spring Cloud 工具套件提供了 Gateway OpenFeign 等組件,以支持在不同環(huán)境下對應用之間的快速調用。
Spring Boot Spring Cloud 的基礎組成部分,也是 Spring 開發(fā)框架的根本所在。其中:
?Netty 是一個以事件驅動的非阻塞的高并發(fā)服務。
Web Flux 個全新的反應式 Web 框架。
Spring Data 是一個通用的基于 Spring 編程模型并且能夠保留數(shù)據(jù)底層特殊性的數(shù)據(jù)存取組件。
?Spring Security 是一個功能強大、高度可定制的身份驗證和訪問控制框架。
Spring AMQP 是基于 Spring 框架的 AMQP 消息解決方案,提供模板化的發(fā)送和接收消息的抽象層,提供基于消息驅動的 POJO 消息監(jiān)聽等,極大地方便我們基于RabbitMQ 等消息中間件進行相關開發(fā)。

SpringCloud的版本說明
Spring Cloud 的版本號為了與各個小項目,或其他組件的版本號區(qū)分開來,使用了大版本號的方式,并以倫敦地鐵站的名字命名,同時按字母順序進行排列,截止到目前,累計的版本號有:Angel Brixton Camden Dalston Edeware Finchley Greenwich 等,本文將使用第七個大版本,即 Greenwich ,其對應的 Spring Boot 版本為 2.1.6 發(fā)行版。
有關 Spring Cloud 的版本更新可留意官方發(fā)布的信息。
版本更新不會對我們正在使用的程序產(chǎn)生任何影響,但是隨著版本更新,可能會有一些新功能和新技術的產(chǎn)生。例如,在從版本 Edgware Finchley 的更新中, Sp ig Boot l.x 升級到了 2ι 這其中的變化是比較大的。最大的變化是 Spring Boot 之后,提供了一些反應式編程的方法,讓我們可以開發(fā)一些非阻塞的高并發(fā)服務。

?小結
本章介紹了微服務架構的來龍去脈,說明了基于微服務的設計和開發(fā),已經(jīng)得到越來越多的企業(yè)和個人的認可,而以微服務架構為主流的技術也已迅速發(fā)展起來。
springcloud ,因為其豐富的工具套件、全面的設計,以及很好的兼容性,使它成為眾多開發(fā)人員喜歡和熱愛的一種開發(fā)工具,所以也將在更大的范圍中流行起來。
所以,作為一個 Java 開發(fā)者,學習和掌握 Spring Cloud 的開發(fā)方法,不僅僅是一種“時尚”,更有可能成為一項優(yōu)秀的看家本領。
朋友們,讓我們一起努力吧,一起來學習 Spring Cloud !
本文給大家講解的內(nèi)容是Spring Cloud 的優(yōu)勢、Spring Cloud 工具套件介紹、Spring Cloud 的版本說明
下篇文章給大家講解的是高并發(fā)微服務架構設計;
覺得文章不錯的朋友可以轉發(fā)此文關注小編;
感謝大家的支持!
本文就是愿天堂沒有BUG給大家分享的內(nèi)容,大家有收獲的話可以分享下,想學習更多的話可以到微信公眾號里找我,我等你哦。
