最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單了解SpringCloud運行原理

 更新時間:2019年11月16日 08:32:18   作者:熊貓兩年后長大  
這篇文章主要介紹了簡單了解SpringCloud運行原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這篇文章主要介紹了簡單了解SpringCloud運行原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

SpringCloud是基于SpringBoot這一高度自動化的應用開發(fā)框架,將各類業(yè)界比較知名的、得到過實踐反饋的開元服務治理相關(guān)的技術(shù)框架進行優(yōu)化整合的框架,是一種開發(fā)方式的優(yōu)化和組合,,是一組框架的統(tǒng)稱,基于SpringBoot的starter定制,實現(xiàn)開箱即用的目標,通過簡單的聲明式注解,就能實現(xiàn)服務的調(diào)用、負載均衡、限流、熔斷等機制

SpringCloud的核心組件

首先要通過定制一套基于SpringBoot的starter以便快速進行框架依賴的集成于配置,所以用springcloud進行微服務開發(fā)時,在項目中通過“spring-cloud-starter-parent”父依賴來實現(xiàn)其他框架級組件的快速引入,雖然只是很簡單的引入了一個父依賴,但是實際上卻是引入了整個SpringBoot的框架體系一級SpringCloud框架體系的整個依賴

核心組件:

SpringCloudStarters:SpringBoot式的啟動項目,為SC提供了開箱即用的依賴管理;

Consul:是一個用Go語言編寫的服務發(fā)現(xiàn)與配置工具,可作為整個微服務體系的服務注冊中心;

Eureka:是一個用java語言編寫的服務注冊中心;

Feign:是一種聲明式、模塊化的http客戶端,用于簡化微服務間的調(diào)用行為;

Ribbon:是一個進程間通信庫(遠程過程調(diào)用),內(nèi)置了軟件負載均衡器,主要的使用模型包括REST調(diào)用,支持各種序列化方案;

Zuul:是一個網(wǎng)關(guān)服務,他提供動態(tài)路由、監(jiān)視、彈性、安全性等等;

Hystrix:是一個延遲和容錯庫,旨在隔離對遠程系統(tǒng)、服務和第三方庫的訪問點,停止級聯(lián)故障,并在不可避免的復雜分布式系統(tǒng)中啟用彈性;

SpringCloudConfig:配置管理工具包,讓你可以把配置放到遠程服務器,集中化管理集群配置,目前支持本地存儲、Git以及Subversion;

各個服務間進行通訊調(diào)用的核心問題,也就是通過Feign進行客戶端的服務調(diào)用,微服務動支持通過Eureka進行多節(jié)點集群部署,客戶端調(diào)用時還需要實現(xiàn)負載均衡等功能,在SpringCloud中是通過Feign框架組合Ribbon框架來實現(xiàn)的

微服務系統(tǒng)中還要實現(xiàn)限流熔斷的核心問題:服務的限流和熔斷,如果服務間的調(diào)用出現(xiàn)阻塞就需要進行及時的限流,并通過熔斷來保證服務的基本可用性,可通過Zuul和Hystrix服務,通過注解的方式來提供這樣的功能機制

服務的配置管理核心問題:通過SpringCloudConfig 獨立配置服務管理來實現(xiàn),通過該組件實現(xiàn)SC體系中所喲偶微服務應用配置的集中化管理

SpringCloud的核心注解:

@EnableDiscoveryClient:定義在spring-cloud-commons包中,便于快速實現(xiàn)服務注冊與發(fā)現(xiàn)的功能注解定義。在主啟動類上定義;

  @EnableDiscoveryClient注解的定義中通過“@import({EnableDiscoveryClientImportSelector.class})”類,此類通過定義“isEnable()”方法表示開始服務注冊與發(fā)現(xiàn)等功能,染紅其父類型“SpringFactoryImportSelector”通過“selectImports()”方法開始掃描eureka繼承的starter依賴包。需要在項目中引入“spring-cloud-starter-consul-discovery”依賴包,這個依賴的“META-INF/spring.factories”文件指向具體依賴“spring-cloud-consul-discovery”,而該依賴中的“META-INF/spring-factories”文件則包含了一系列自動配置類,這些自動配置類會在應用啟動時進行初始化和加載,完成微服務與Eureka的連接。

以上說明了SC進行微服務自動發(fā)現(xiàn)注冊配置的基本原理,實際上還是基于SpringBoot的機制來實現(xiàn)的,具體怎樣交互連接的可看“spring-cloud-consul-discovery”的源碼

@EnableFeignClient:用于告訴框架掃描所有通過注解@FeignClient定義的feign客戶端。服務消費方通過@EnableFeignClients注解開啟配置后,可以通過@FeignClient注解就可以進行服務調(diào)用了,而且實現(xiàn)了客戶端負載均衡。這個注解默認是會默認開啟Ribbon代理的,而Ribbon是實現(xiàn)客戶端負載均衡的一個組件,通過從Eureka拉取服務節(jié)點信息,從而以輪詢的方式轉(zhuǎn)發(fā)客戶端調(diào)用請求到不同的服務端節(jié)點來實現(xiàn)負載均衡。

@EnableCircuitBreake:通過此注解來使用斷路器,該注解會引入Hystrix的配置,其過程與@EnableEurekaClient注解的過程一致,通過導入EnableCircuitBreakerImportSelector類,開啟斷路器設置,如果項目中引入了“spring-cloud-starter-hystrix”依賴包,那么在應用加載時會初始化Hystrix相關(guān)的自動配置類。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JDK1.8源碼下載及idea2021導入jdk1.8源碼的詳細步驟

    JDK1.8源碼下載及idea2021導入jdk1.8源碼的詳細步驟

    這篇文章主要介紹了JDK1.8源碼下載及idea2021導入jdk1.8源碼的詳細步驟,在文章開頭就給大家分享了JDK1.8源碼下載地址和下載步驟,告訴大家idea2021.1.3導入JDK1.8源碼步驟,需要的朋友可以參考下
    2022-11-11
  • Spring?Boot項目完美大一統(tǒng)(結(jié)果異常日志統(tǒng)一)

    Spring?Boot項目完美大一統(tǒng)(結(jié)果異常日志統(tǒng)一)

    這篇文章主要為大家介紹了Spring?Boot項目完美大一統(tǒng)(結(jié)果異常日志統(tǒng)一)的實詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Java中Socket用法詳解

    Java中Socket用法詳解

    本文詳細講解了Java中Socket的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • SpringBoot中@Import注解的使用方式

    SpringBoot中@Import注解的使用方式

    這篇文章主要介紹了SpringBoot中@Import注解的使用方式,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • 淺析SpringBoot中常見的底層注解

    淺析SpringBoot中常見的底層注解

    Spring?Boot?是一個用于創(chuàng)建獨立的、基于Spring框架的Java應用程序的框架,它提供了許多注解,下面小編就來和大家介紹一些常見的底層注解吧
    2023-08-08
  • @Resource和@Autowired兩個注解的區(qū)別及說明

    @Resource和@Autowired兩個注解的區(qū)別及說明

    這篇文章主要介紹了@Resource和@Autowired兩個注解的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • IDEA集成DeepSeek的詳細教程(保姆級教程)

    IDEA集成DeepSeek的詳細教程(保姆級教程)

    DeepSeek作為一款強大的代碼搜索和分析工具,能夠幫助開發(fā)者快速定位代碼、理解項目結(jié)構(gòu)以及優(yōu)化代碼質(zhì)量,本文將詳細介紹如何在IntelliJ?IDEA中集成DeepSeek,并展示如何利用它來提升開發(fā)效率,感興趣的朋友一起看看吧
    2025-02-02
  • JavaWeb response和request對象原理及實例解析

    JavaWeb response和request對象原理及實例解析

    這篇文章主要介紹了JavaWeb response和request對象原理及實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Spring中的Filter過濾器詳解

    Spring中的Filter過濾器詳解

    這篇文章主要介紹了Spring中的Filter過濾器詳解,Filter 程序是一個實現(xiàn)了特殊接口的 Java 類,與 Servlet 類似,也是由 Servlet 容器進行調(diào)用和執(zhí)行的,需要的朋友可以參考下
    2023-08-08
  • 查看jdk(java開發(fā)工具包)安裝路徑的兩種方法

    查看jdk(java開發(fā)工具包)安裝路徑的兩種方法

    若已經(jīng)安裝好了jdk(java開發(fā)工具包),也配置了環(huán)境變量,事后卻忘了安裝路徑在哪,如何查看jdk安裝路徑?本文給大家介紹了兩種查看jdk(java開發(fā)工具包)安裝路徑的方法,需要的朋友可以參考下
    2023-12-12

最新評論

谷城县| 阿合奇县| 嵩明县| 石楼县| 平度市| 祁门县| 固阳县| 凉城县| 莱西市| 盐亭县| 孝义市| 汉沽区| 武夷山市| 彩票| 宝山区| 正阳县| 保山市| 越西县| 左权县| 杭锦旗| 巴青县| 揭东县| 城口县| 来凤县| 东丰县| 扎兰屯市| 辰溪县| 龙山县| 平阴县| 嵊州市| 诸城市| 津南区| 镇安县| 永福县| 龙口市| 虞城县| 田阳县| 平阴县| 莱阳市| 莲花县| 辽中县|