本篇文章為大家展示了SpringCloud的運(yùn)行原理是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)建站專注于網(wǎng)站建設(shè)|網(wǎng)站維護(hù)公司|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計(jì)與制作經(jīng)驗(yàn),為許多企業(yè)提供了網(wǎng)站定制設(shè)計(jì)服務(wù),案例作品覆蓋火鍋店設(shè)計(jì)等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身設(shè)計(jì)品質(zhì)網(wǎng)站。SpringCloud的核心組件
首先要通過定制一套基于SpringBoot的starter以便快速進(jìn)行框架依賴的集成于配置,所以用springcloud進(jìn)行微服務(wù)開發(fā)時,在項(xiàng)目中通過“spring-cloud-starter-parent”父依賴來實(shí)現(xiàn)其他框架級組件的快速引入,雖然只是很簡單的引入了一個父依賴,但是實(shí)際上卻是引入了整個SpringBoot的框架體系一級SpringCloud框架體系的整個依賴
核心組件:
SpringCloudStarters:SpringBoot式的啟動項(xiàng)目,為SC提供了開箱即用的依賴管理;
Consul:是一個用Go語言編寫的服務(wù)發(fā)現(xiàn)與配置工具,可作為整個微服務(wù)體系的服務(wù)注冊中心;
Eureka:是一個用java語言編寫的服務(wù)注冊中心;
Feign:是一種聲明式、模塊化的http客戶端,用于簡化微服務(wù)間的調(diào)用行為;
Ribbon:是一個進(jìn)程間通信庫(遠(yuǎn)程過程調(diào)用),內(nèi)置了軟件負(fù)載均衡器,主要的使用模型包括REST調(diào)用,支持各種序列化方案;
Zuul:是一個網(wǎng)關(guān)服務(wù),他提供動態(tài)路由、監(jiān)視、彈性、安全性等等;
Hystrix:是一個延遲和容錯庫,旨在隔離對遠(yuǎn)程系統(tǒng)、服務(wù)和第三方庫的訪問點(diǎn),停止級聯(lián)故障,并在不可避免的復(fù)雜分布式系統(tǒng)中啟用彈性;
SpringCloudConfig:配置管理工具包,讓你可以把配置放到遠(yuǎn)程服務(wù)器,集中化管理集群配置,目前支持本地存儲、Git以及Subversion;
各個服務(wù)間進(jìn)行通訊調(diào)用的核心問題,也就是通過Feign進(jìn)行客戶端的服務(wù)調(diào)用,微服務(wù)動支持通過Eureka進(jìn)行多節(jié)點(diǎn)集群部署,客戶端調(diào)用時還需要實(shí)現(xiàn)負(fù)載均衡等功能,在SpringCloud中是通過Feign框架組合Ribbon框架來實(shí)現(xiàn)的
微服務(wù)系統(tǒng)中還要實(shí)現(xiàn)限流熔斷的核心問題:服務(wù)的限流和熔斷,如果服務(wù)間的調(diào)用出現(xiàn)阻塞就需要進(jìn)行及時的限流,并通過熔斷來保證服務(wù)的基本可用性,可通過Zuul和Hystrix服務(wù),通過注解的方式來提供這樣的功能機(jī)制
服務(wù)的配置管理核心問題:通過SpringCloudConfig 獨(dú)立配置服務(wù)管理來實(shí)現(xiàn),通過該組件實(shí)現(xiàn)SC體系中所喲偶微服務(wù)應(yīng)用配置的集中化管理
SpringCloud的核心注解:
@EnableDiscoveryClient:定義在spring-cloud-commons包中,便于快速實(shí)現(xiàn)服務(wù)注冊與發(fā)現(xiàn)的功能注解定義。在主啟動類上定義;
@EnableDiscoveryClient注解的定義中通過“@import({EnableDiscoveryClientImportSelector.class})”類,此類通過定義“isEnable()”方法表示開始服務(wù)注冊與發(fā)現(xiàn)等功能,染紅其父類型“SpringFactoryImportSelector”通過“selectImports()”方法開始掃描eureka繼承的starter依賴包。需要在項(xiàng)目中引入“spring-cloud-starter-consul-discovery”依賴包,這個依賴的“META-INF/spring.factories”文件指向具體依賴“spring-cloud-consul-discovery”,而該依賴中的“META-INF/spring-factories”文件則包含了一系列自動配置類,這些自動配置類會在應(yīng)用啟動時進(jìn)行初始化和加載,完成微服務(wù)與Eureka的連接。
以上說明了SC進(jìn)行微服務(wù)自動發(fā)現(xiàn)注冊配置的基本原理,實(shí)際上還是基于SpringBoot的機(jī)制來實(shí)現(xiàn)的,具體怎樣交互連接的可看“spring-cloud-consul-discovery”的源碼
@EnableFeignClient:用于告訴框架掃描所有通過注解@FeignClient定義的feign客戶端。服務(wù)消費(fèi)方通過@EnableFeignClients注解開啟配置后,可以通過@FeignClient注解就可以進(jìn)行服務(wù)調(diào)用了,而且實(shí)現(xiàn)了客戶端負(fù)載均衡。這個注解默認(rèn)是會默認(rèn)開啟Ribbon代理的,而Ribbon是實(shí)現(xiàn)客戶端負(fù)載均衡的一個組件,通過從Eureka拉取服務(wù)節(jié)點(diǎn)信息,從而以輪詢的方式轉(zhuǎn)發(fā)客戶端調(diào)用請求到不同的服務(wù)端節(jié)點(diǎn)來實(shí)現(xiàn)負(fù)載均衡。
@EnableCircuitBreake:通過此注解來使用斷路器,該注解會引入Hystrix的配置,其過程與@EnableEurekaClient注解的過程一致,通過導(dǎo)入EnableCircuitBreakerImportSelector類,開啟斷路器設(shè)置,如果項(xiàng)目中引入了“spring-cloud-starter-hystrix”依賴包,那么在應(yīng)用加載時會初始化Hystrix相關(guān)的自動配置類。
上述內(nèi)容就是SpringCloud的運(yùn)行原理是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。