簡單了解SpringCloud執行原理

2022-10-06 18:39:11 字數 2342 閱讀 2103

springcloud是基於springbootpxwxtfqkdf這一高度自動化的應用開發框架,將各類業界比較知名的、得到過實踐反饋的開元服務治理相關的技術框架進行優化整合的框架,是一種開發方式的優化和組合,,是一組框架的統稱,基於springboot的starter定製,實現開箱即用的目標,通過簡單的宣告式註解,就能實現服務的呼叫、負載均衡、限流、熔斷等機制

springcloud的核心元件

首先要通過定製一套基於springboot的starter以便快速進行框架依賴的整合於配置,所以用springcloud進行微服務開發時,在專案中通過「spring-cloud-starter-parent」父依賴來實現其他框架級元件的快速引入,雖然只是很簡單的引入了乙個父依賴,但是實際上卻是引入了整個springboot的框架體系一級springcloud框架體系的整個依賴

核心元件:

springcloudstarters:springboot式的啟動專案,為sc提供了開箱即用的依賴管理;

consul:是乙個用go語言編寫的服務發現與配置工具,可作為整個微服務體系的服務註冊中心;

eureka:是乙個用j**a語言編寫的服務註冊中心;

feign:是一種宣告式、模組化的http客戶端,用於簡化微服務間的呼叫行為;

ribbon:是乙個程序間通訊庫(遠端過程呼叫),內建了軟體負載均衡器,主要的使用模型包括rest呼叫,支援各種序列化方案;

zuul:是乙個閘道器服務,他提供動態路由、監視、彈性、安全性等等;

hystrix:是乙個延遲和容錯庫,旨在隔離對遠端系統、服務和第三方庫的訪問點,停止級聯故障,並在不可避免的複雜分布式系統中啟用彈性;

springcloudconfig:配置程式設計客棧管理工具包,讓你可以把配置放到遠端伺服器,集中化管理集群配置,目前支援本地儲存、git以及subversion;

各個服務間進行通訊呼叫的核心問題,也就是通過feign進行客戶端的服務呼叫,微服務動支援通過eureka進行多節點集群部署,客戶端呼叫時還需要實現負載均衡等功能,在springcloud中是通過feign框架組合ribbon框架來實現的

微服務系統中還要實現限流熔斷的核心問題:服務的限流和熔斷,如果服務間的呼叫出現阻塞就需要進行及時的限流,並通過熔斷來保證服務的基本可用性,可通過zuul和hystrix服務,通過註解的方式來提供這樣的功能機制

服務的配置管理核心問題:通過springcloudconfig 獨立配置服務管理來實現,通過該元件實現sc體系中所喲偶微服務應pxwxtfqkdf用配置的集中化管理

springcloud的核心註解:

@enablediscoveryclient:定義在spring-cloud-commons包中,便於快速實現服務註冊與發現的功能註解定義。在主啟動類上定義;

@enablediscoveryclient註解的定義中通過「@import()」類,此類通過定義「isenable()」方法表示開始服務註冊與發現等功能,染紅其父型別「springfactoryimportselector」通過「selectimports()」方法開始掃瞄eureka繼承的starter依賴包。需要在專案中引入「spring-cloud-starter-consul-discovery」依賴包,這個依賴的「meta-inf/spring.factories」檔案指向具體依賴「spring-cloud-consul-discovery」,而該依賴中的「meta-inf/spring-factories」檔案則包含了一系列自動配置類,這些自動配置類會在應用啟動時進行初始化和載入,完成微服務與eureka的連線。

以上說明了sc進行微服務自動發現註冊配置的基本原理,實際上還是基於springbootpxwxtfqkdf的機制來實現的,具體怎樣互動連線的可看「spring-cloud-consul-discovery」的原始碼

@enablefeignclient:用於告訴框架掃瞄所有通過註解@feignclient定義的feign客戶端。服務消費方通過@enablefeignclients註解開啟配置後,可以通過@feignclient註解就可以進行服務呼叫了,而且實現了客戶端負載均衡。這個註解預設是會預設開啟ribbon**的,而ribbon是實現客戶端負載均衡的乙個元件,通過從eureka拉取服務節點資訊,從而以輪詢的方式**客戶端呼叫請求到不同的服務端節點來實現負載均衡。

@enablecircuitbreake:通過此註解來使用斷路器,該註解會引入hystrix的配置,其過程與@enableeurekaclient註解的過程一致,通過匯入enablecircuitbreakerimportselector類,開啟斷路器設定,如果專案中引入了「spring-cloud-starter-hystrix」依賴包,那麼在應用載入時會初始化hystrix相關的自動配置類。

本文標題: 簡單了解springcloud執行原理

本文位址: /ruanjian/j**a/286743.html

簡單了解spring cloud 閘道器服務

微服務 閘道器服務 閘道器服務是微服務體系裡面重要的一環。微服務體系內,各個服務之間都會有通用的功能比如說 鑑權 安全 監控 日誌 服務排程 這些都是可以單獨抽象出來做乙個服務來處理。所以微服務網kdmzy關應運而生。其主要作用作為微服www.cppcns.com務體系裡面流量的唯一入口去做一些功能...

spring cloud簡單搭建

spring cloud簡單搭建,該分享來自eureka和feign的使用 遇到的問題及解決 feign.feignexception status 404 reading userfeignclient findbyid long provide專案controller層的方法要 public l...

SpringCloud的簡單使用

apache dubbo zookeeper springcloud alibaba 服務網格 微服務優點 微服務缺點 微服務技術棧 微服務條目 落地技術 服務開發 springboot,spring,springmvc 服務配置與管理 netflix的archaius,阿里的diamond 服務註...