這篇文章主要講解了“SpringCloudd的運(yùn)行原理是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“SpringCloudd的運(yùn)行原理是什么”吧!
成都創(chuàng)新互聯(lián)公司專注于呈貢網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供呈貢營(yíng)銷型網(wǎng)站建設(shè),呈貢網(wǎng)站制作、呈貢網(wǎng)頁(yè)設(shè)計(jì)、呈貢網(wǎng)站官網(wǎng)定制、成都小程序開(kāi)發(fā)服務(wù),打造呈貢網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供呈貢網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
SpringCloud是基于SpringBoot這一高度自動(dòng)化的應(yīng)用開(kāi)發(fā)框架,將各類業(yè)界比較知名的、得到過(guò)實(shí)踐反饋的開(kāi)元服務(wù)治理相關(guān)的技術(shù)框架進(jìn)行優(yōu)化整合的框架,是一種開(kāi)發(fā)方式的優(yōu)化和組合,,是一組框架的統(tǒng)稱,基于SpringBoot的starter定制,實(shí)現(xiàn)開(kāi)箱即用的目標(biāo),通過(guò)簡(jiǎn)單的聲明式注解,就能實(shí)現(xiàn)服務(wù)的調(diào)用、負(fù)載均衡、限流、熔斷等機(jī)制
SpringCloud的核心組件
首先要通過(guò)定制一套基于SpringBoot的starter以便快速進(jìn)行框架依賴的集成于配置,所以用springcloud進(jìn)行微服務(wù)開(kāi)發(fā)時(shí),在項(xiàng)目中通過(guò)“spring-cloud-starter-parent”父依賴來(lái)實(shí)現(xiàn)其他框架級(jí)組件的快速引入,雖然只是很簡(jiǎn)單的引入了一個(gè)父依賴,但是實(shí)際上卻是引入了整個(gè)SpringBoot的框架體系一級(jí)SpringCloud框架體系的整個(gè)依賴
核心組件:
SpringCloudStarters:SpringBoot式的啟動(dòng)項(xiàng)目,為SC提供了開(kāi)箱即用的依賴管理;
Consul:是一個(gè)用Go語(yǔ)言編寫(xiě)的服務(wù)發(fā)現(xiàn)與配置工具,可作為整個(gè)微服務(wù)體系的服務(wù)注冊(cè)中心;
Eureka:是一個(gè)用java語(yǔ)言編寫(xiě)的服務(wù)注冊(cè)中心;
Feign:是一種聲明式、模塊化的http客戶端,用于簡(jiǎn)化微服務(wù)間的調(diào)用行為;
Ribbon:是一個(gè)進(jìn)程間通信庫(kù)(遠(yuǎn)程過(guò)程調(diào)用),內(nèi)置了軟件負(fù)載均衡器,主要的使用模型包括REST調(diào)用,支持各種序列化方案;
Zuul:是一個(gè)網(wǎng)關(guān)服務(wù),他提供動(dòng)態(tài)路由、監(jiān)視、彈性、安全性等等;
Hystrix:是一個(gè)延遲和容錯(cuò)庫(kù),旨在隔離對(duì)遠(yuǎn)程系統(tǒng)、服務(wù)和第三方庫(kù)的訪問(wèn)點(diǎn),停止級(jí)聯(lián)故障,并在不可避免的復(fù)雜分布式系統(tǒng)中啟用彈性;
SpringCloudConfig:配置管理工具包,讓你可以把配置放到遠(yuǎn)程服務(wù)器,集中化管理集群配置,目前支持本地存儲(chǔ)、Git以及Subversion;
各個(gè)服務(wù)間進(jìn)行通訊調(diào)用的核心問(wèn)題,也就是通過(guò)Feign進(jìn)行客戶端的服務(wù)調(diào)用,微服務(wù)動(dòng)支持通過(guò)Eureka進(jìn)行多節(jié)點(diǎn)集群部署,客戶端調(diào)用時(shí)還需要實(shí)現(xiàn)負(fù)載均衡等功能,在SpringCloud中是通過(guò)Feign框架組合Ribbon框架來(lái)實(shí)現(xiàn)的
微服務(wù)系統(tǒng)中還要實(shí)現(xiàn)限流熔斷的核心問(wèn)題:服務(wù)的限流和熔斷,如果服務(wù)間的調(diào)用出現(xiàn)阻塞就需要進(jìn)行及時(shí)的限流,并通過(guò)熔斷來(lái)保證服務(wù)的基本可用性,可通過(guò)Zuul和Hystrix服務(wù),通過(guò)注解的方式來(lái)提供這樣的功能機(jī)制
服務(wù)的配置管理核心問(wèn)題:通過(guò)SpringCloudConfig 獨(dú)立配置服務(wù)管理來(lái)實(shí)現(xiàn),通過(guò)該組件實(shí)現(xiàn)SC體系中所喲偶微服務(wù)應(yīng)用配置的集中化管理
SpringCloud的核心注解:
@EnableDiscoveryClient:定義在spring-cloud-commons包中,便于快速實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)的功能注解定義。在主啟動(dòng)類上定義;
@EnableDiscoveryClient注解的定義中通過(guò)“@import({EnableDiscoveryClientImportSelector.class})”類,此類通過(guò)定義“isEnable()”方法表示開(kāi)始服務(wù)注冊(cè)與發(fā)現(xiàn)等功能,染紅其父類型“SpringFactoryImportSelector”通過(guò)“selectImports()”方法開(kāi)始掃描eureka繼承的starter依賴包。需要在項(xiàng)目中引入“spring-cloud-starter-consul-discovery”依賴包,這個(gè)依賴的“META-INF/spring.factories”文件指向具體依賴“spring-cloud-consul-discovery”,而該依賴中的“META-INF/spring-factories”文件則包含了一系列自動(dòng)配置類,這些自動(dòng)配置類會(huì)在應(yīng)用啟動(dòng)時(shí)進(jìn)行初始化和加載,完成微服務(wù)與Eureka的連接。
以上說(shuō)明了SC進(jìn)行微服務(wù)自動(dòng)發(fā)現(xiàn)注冊(cè)配置的基本原理,實(shí)際上還是基于SpringBoot的機(jī)制來(lái)實(shí)現(xiàn)的,具體怎樣交互連接的可看“spring-cloud-consul-discovery”的源碼
@EnableFeignClient:用于告訴框架掃描所有通過(guò)注解@FeignClient定義的feign客戶端。服務(wù)消費(fèi)方通過(guò)@EnableFeignClients注解開(kāi)啟配置后,可以通過(guò)@FeignClient注解就可以進(jìn)行服務(wù)調(diào)用了,而且實(shí)現(xiàn)了客戶端負(fù)載均衡。這個(gè)注解默認(rèn)是會(huì)默認(rèn)開(kāi)啟Ribbon代理的,而Ribbon是實(shí)現(xiàn)客戶端負(fù)載均衡的一個(gè)組件,通過(guò)從Eureka拉取服務(wù)節(jié)點(diǎn)信息,從而以輪詢的方式轉(zhuǎn)發(fā)客戶端調(diào)用請(qǐng)求到不同的服務(wù)端節(jié)點(diǎn)來(lái)實(shí)現(xiàn)負(fù)載均衡。
@EnableCircuitBreake:通過(guò)此注解來(lái)使用斷路器,該注解會(huì)引入Hystrix的配置,其過(guò)程與@EnableEurekaClient注解的過(guò)程一致,通過(guò)導(dǎo)入EnableCircuitBreakerImportSelector類,開(kāi)啟斷路器設(shè)置,如果項(xiàng)目中引入了“spring-cloud-starter-hystrix”依賴包,那么在應(yīng)用加載時(shí)會(huì)初始化Hystrix相關(guān)的自動(dòng)配置類。
感謝各位的閱讀,以上就是“SpringCloudd的運(yùn)行原理是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)SpringCloudd的運(yùn)行原理是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
文章名稱:SpringCloudd的運(yùn)行原理是什么
本文URL:http://jinyejixie.com/article16/iiecgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、用戶體驗(yàn)、App開(kāi)發(fā)、網(wǎng)站策劃、商城網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)