您好,登錄后才能下訂單哦!
這篇文章主要講解了“SpringCloudd的運行原理是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“SpringCloudd的運行原理是什么”吧!
SpringCloud是基于SpringBoot這一高度自動化的應用開發框架,將各類業界比較知名的、得到過實踐反饋的開元服務治理相關的技術框架進行優化整合的框架,是一種開發方式的優化和組合,,是一組框架的統稱,基于SpringBoot的starter定制,實現開箱即用的目標,通過簡單的聲明式注解,就能實現服務的調用、負載均衡、限流、熔斷等機制
SpringCloud的核心組件
首先要通過定制一套基于SpringBoot的starter以便快速進行框架依賴的集成于配置,所以用springcloud進行微服務開發時,在項目中通過“spring-cloud-starter-parent”父依賴來實現其他框架級組件的快速引入,雖然只是很簡單的引入了一個父依賴,但是實際上卻是引入了整個SpringBoot的框架體系一級SpringCloud框架體系的整個依賴
核心組件:
SpringCloudStarters:SpringBoot式的啟動項目,為SC提供了開箱即用的依賴管理;
Consul:是一個用Go語言編寫的服務發現與配置工具,可作為整個微服務體系的服務注冊中心;
Eureka:是一個用java語言編寫的服務注冊中心;
Feign:是一種聲明式、模塊化的http客戶端,用于簡化微服務間的調用行為;
Ribbon:是一個進程間通信庫(遠程過程調用),內置了軟件負載均衡器,主要的使用模型包括REST調用,支持各種序列化方案;
Zuul:是一個網關服務,他提供動態路由、監視、彈性、安全性等等;
Hystrix:是一個延遲和容錯庫,旨在隔離對遠程系統、服務和第三方庫的訪問點,停止級聯故障,并在不可避免的復雜分布式系統中啟用彈性;
SpringCloudConfig:配置管理工具包,讓你可以把配置放到遠程服務器,集中化管理集群配置,目前支持本地存儲、Git以及Subversion;
各個服務間進行通訊調用的核心問題,也就是通過Feign進行客戶端的服務調用,微服務動支持通過Eureka進行多節點集群部署,客戶端調用時還需要實現負載均衡等功能,在SpringCloud中是通過Feign框架組合Ribbon框架來實現的
微服務系統中還要實現限流熔斷的核心問題:服務的限流和熔斷,如果服務間的調用出現阻塞就需要進行及時的限流,并通過熔斷來保證服務的基本可用性,可通過Zuul和Hystrix服務,通過注解的方式來提供這樣的功能機制
服務的配置管理核心問題:通過SpringCloudConfig 獨立配置服務管理來實現,通過該組件實現SC體系中所喲偶微服務應用配置的集中化管理
SpringCloud的核心注解:
@EnableDiscoveryClient:定義在spring-cloud-commons包中,便于快速實現服務注冊與發現的功能注解定義。在主啟動類上定義;
@EnableDiscoveryClient注解的定義中通過“@import({EnableDiscoveryClientImportSelector.class})”類,此類通過定義“isEnable()”方法表示開始服務注冊與發現等功能,染紅其父類型“SpringFactoryImportSelector”通過“selectImports()”方法開始掃描eureka繼承的starter依賴包。需要在項目中引入“spring-cloud-starter-consul-discovery”依賴包,這個依賴的“META-INF/spring.factories”文件指向具體依賴“spring-cloud-consul-discovery”,而該依賴中的“META-INF/spring-factories”文件則包含了一系列自動配置類,這些自動配置類會在應用啟動時進行初始化和加載,完成微服務與Eureka的連接。
以上說明了SC進行微服務自動發現注冊配置的基本原理,實際上還是基于SpringBoot的機制來實現的,具體怎樣交互連接的可看“spring-cloud-consul-discovery”的源碼
@EnableFeignClient:用于告訴框架掃描所有通過注解@FeignClient定義的feign客戶端。服務消費方通過@EnableFeignClients注解開啟配置后,可以通過@FeignClient注解就可以進行服務調用了,而且實現了客戶端負載均衡。這個注解默認是會默認開啟Ribbon代理的,而Ribbon是實現客戶端負載均衡的一個組件,通過從Eureka拉取服務節點信息,從而以輪詢的方式轉發客戶端調用請求到不同的服務端節點來實現負載均衡。
@EnableCircuitBreake:通過此注解來使用斷路器,該注解會引入Hystrix的配置,其過程與@EnableEurekaClient注解的過程一致,通過導入EnableCircuitBreakerImportSelector類,開啟斷路器設置,如果項目中引入了“spring-cloud-starter-hystrix”依賴包,那么在應用加載時會初始化Hystrix相關的自動配置類。
感謝各位的閱讀,以上就是“SpringCloudd的運行原理是什么”的內容了,經過本文的學習后,相信大家對SpringCloudd的運行原理是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。