關(guān)于SpringCloud的微服務(wù)以及組件詳解
一、SpringCloud
1.1、什么是SpringCloud
SpringCloud不同于其他 Spring 的優(yōu)秀項目, 它不再是 像SpringSecurity、SpringMvc... 的一個基礎(chǔ)框架
, 而是一個更高層次的、 架構(gòu)視角的綜合性大型項目, 他的目標(biāo)是構(gòu)建一套標(biāo)準(zhǔn)化的微服務(wù)解決方案
。讓架構(gòu)師、 開發(fā)者在使用微服務(wù)理念構(gòu)建應(yīng)用系統(tǒng)的時候, 面對各個環(huán)節(jié)的問題都可以找到相應(yīng)的組件來處理。
引用網(wǎng)友戲稱的一個比喻:Spring Cloud 可以說是 Spring 社區(qū)為微服務(wù)架構(gòu)提供的一個 “ 全家桶 ” 套餐。 由于 “ 套餐 ” 中的組件通過一個社區(qū)進(jìn)行包裝與整合, 使得 “ 套餐 ” 中各個組件之間的配合變得更加和諧, 這可以有效減少我們在組件的選型和整合上花費的精力
, 所以它可以幫助我們快速構(gòu)建起基礎(chǔ)的微服務(wù)架構(gòu)系統(tǒng)。
1.2、SpringCloud缺點
Spring Cloud因其涵蓋的內(nèi)容非常廣泛,因此對于很多初學(xué)者來說就像被專業(yè)名詞轟炸了一樣, 入門的難度也就大大提高了。 同時, 中文文檔與資料的匱乏,以及官方文檔的內(nèi)容對于使用描述并不夠細(xì)致等問題, 也直接提升了使用者的學(xué)習(xí)門檻。
二、什么是微服務(wù)架構(gòu)
2.1、什么是微服務(wù)
“微服務(wù) ”是在2014年3月名字叫Martin Fowler
所提出的
微服務(wù)是系統(tǒng)架構(gòu)上的一種設(shè)計風(fēng)格, 它的主旨是將一個原本獨立的系統(tǒng)拆分成多個小型服務(wù)
,這些小型服務(wù)都在各自獨立的進(jìn)程中運行,服務(wù)之間通過基于HTTP的RESTful API進(jìn)行通信協(xié)作。由于有了輕量級的通信協(xié)作基礎(chǔ), 所以這些微服務(wù)可以使用不同的語言來編寫。
2.2、微服務(wù)有什么優(yōu)點
微服務(wù)就是將單個應(yīng)用拆分為了多個應(yīng)用(這里的應(yīng)用可以理解為jar包或war包),然后通過框架提供的網(wǎng)關(guān)、服務(wù)治理、服務(wù)發(fā)現(xiàn)、服務(wù)熔斷等等,給人的感覺就會像是一個應(yīng)用,主要目的是拆分多個應(yīng)用,一旦并發(fā)、cpu、內(nèi)存達(dá)到一定的瓶頸,可以采取多機(jī)部署,分擔(dān)服務(wù)器壓力。
往往一個龐大的高并發(fā)的業(yè)務(wù)系統(tǒng)都會采用微服務(wù)。同時微服務(wù)給人的感覺就是專業(yè)的人干專業(yè)的事,訂單模塊就是負(fù)責(zé)訂單業(yè)務(wù),用戶模塊就是負(fù)責(zé)用戶相關(guān)業(yè)務(wù),這樣做的好處就是項目比較好維護(hù)。
2.3、微服務(wù)面臨的問題
在實施微服務(wù)之前, 我們必須要知道, 微服務(wù)雖然有非常多吸引人的優(yōu)點, 但是也因為服務(wù)的拆分引發(fā)了諸多原本在單體應(yīng)用中沒有的問題。
- 運維的新挑戰(zhàn):運維人員需要維護(hù)的進(jìn)程數(shù)量會大大增加,運維過程需要更多的自動化, 這就要求運維人員具備一定的開發(fā)能力來編排運維過程并讓它們能自動運行起來(往往因為這一點 慢慢演變的開發(fā)也得具備一定的運維能力)。
- 接口的一致性:雖然我們拆分了服務(wù), 但是業(yè)務(wù)邏輯上的依賴并不會消除,
只是從單體應(yīng)用中的代碼依賴變?yōu)榱朔?wù)間的通信依賴
。 而當(dāng)我們對原有接口進(jìn)行了一些修改, 那么交互方也需要協(xié)調(diào)這樣的改變來進(jìn)行發(fā)布, 以保證接口的正確調(diào)用。我們需要更完善的接口和版本管理, 或是嚴(yán)格地遵循開閉原則
。 - 分布式的復(fù)雜性:由于拆分后的各個微服務(wù)都是獨立部署并運行在各自的進(jìn)程內(nèi),它們只能通過通信來進(jìn)行協(xié)作, 所以分布式環(huán)境的問題都將是微服務(wù)架構(gòu)系統(tǒng)設(shè)計時需要考慮的重要因素, 比如
網(wǎng)絡(luò)延遲、 分布式事務(wù)、 異步消息
等。
一旦使用微服務(wù)意味著項目會有很多個,我們不可能再使用傳統(tǒng)的方式使用tomcat來部署了。 tomcat部署缺點:一旦有一個服務(wù)更新就需要重啟tomcat 這時候就需要打jar包,使用java -jar命令來啟動項目了,使用java -jar啟動項目一旦有很多的話不容易維護(hù), 于是便引進(jìn)了docker部署,docker可以和jenkins相結(jié)合 來完成
微服務(wù)的自動化部署
,同時這也是現(xiàn)在很流行的技術(shù)體系。
2.4、架構(gòu)類型劃分
下面這張圖代表的是我們的思想一直在不斷變化,從剛開始的ORM對象關(guān)系映射,到后面的MVC分層,RPC遠(yuǎn)程調(diào)用,最后到現(xiàn)在流行的SOA面向服務(wù)開發(fā)。
2.4.1、單一應(yīng)用架構(gòu)
不斷擴(kuò)大的需求會使得單體應(yīng)用變得越來越腕腫。單體應(yīng)用的問題就逐漸凸顯出來, 由于單體系統(tǒng)部署在一個進(jìn)程內(nèi), 往往我們修改了一個很小的功能, 為了部署上線會影響其他功能的運行。隨著系統(tǒng)的發(fā)展, 維護(hù)成本會變得越來越大, 且難以控制。
2.4.2、垂直應(yīng)用架構(gòu)
每個小應(yīng)用各自都有自己獨立的、完整的可運行的一套系統(tǒng)。
2.4.3、分布式服務(wù)架構(gòu)
目前我接手的幾個項目都是用的這個架構(gòu),服務(wù)之間調(diào)用并沒有用注冊中心。
應(yīng)用之間交互不可避免,將核心業(yè)務(wù)抽取出來,用于提高業(yè)務(wù)復(fù)用及整合的分布式服務(wù)框架(RPC)是關(guān)鍵。
2.4.4、流動計算架構(gòu)
應(yīng)用越來越多,此時需增加一個調(diào)度中心基于訪問壓力實時管理集群容量,提高集群利用率
三、版本選擇
使用springcloud必然離不開springboot,這兩個框架的版本可不是隨便一選就能搭配使用的,假如用的版本不對,可能會出現(xiàn)各種問題。
3.1、SpringBoot版本
springboot官網(wǎng):https://spring.io/projects/spring-boot
springboot的git源碼地址:https://github.com/spring-projects/spring-boot
通過官網(wǎng)可以發(fā)現(xiàn):截至目前springboot最穩(wěn)定的版本是2.7.0
依稀記著我上家公司springboot版本是用的1.5.9
版本,項目是比較老的,已經(jīng)有三四年了并且是個大項目。官網(wǎng)也明確說明了,強(qiáng)烈建議升級到2.0
及以上版本。
3.2、SpringCloud版本
springcloud官網(wǎng):https://spring.io/projects/spring-cloud springcloud的git源碼地址:https://github.com/spring-cloud
SpringCloud是一個由許多子項目組成的綜合項目,各子項目有不同的發(fā)布節(jié)奏。為了管理SpringCloud與各子項目的版本依賴關(guān)系,發(fā)布了一個清單,其中包括了某個SpringCloud版本對應(yīng)的子項目版本。
為了避免SpringCloud版本號與子項目版本號混淆,SpringCloud版本采用了名稱而非版本號的命名,這些版本的名字采用了倫敦地鐵站的名字,根據(jù)字母表的順序來對應(yīng)版本時間順序。例如Angel是第一個版本, Brixton是第二個版本。
當(dāng)SpringCloud的發(fā)布內(nèi)容積累到臨界點或者一個重大BUG被解決后,會發(fā)布一個"service releases"版本,簡稱SRX版本,比如Greenwich.SR2就是SpringCloud發(fā)布的Greenwich版本的第2個SRX版本。
目前我們公司有一個項目就是用的 Hoxton.SR4版本的SpringCloud + 2.2.5.RELEASE(RELEASE代表是發(fā)行版)版本的SpringBoot
截止目前官網(wǎng)最新可使用的版本是2021.0.3
:
GA:General Availability: 正式發(fā)布的版本,官方推薦使用此版本。在國外都是用GA來說明release版本的。CURRENT:當(dāng)前推薦的版本PRE:里程碑版/預(yù)覽版本SHAPSHOT:快照
這里只是一個標(biāo)識,方便大家在使用的時候,進(jìn)行選擇版本,我們一般選擇是CURRENT和GA版本
3.3、如何進(jìn)行版本選擇
官網(wǎng)提供了cloud和springboot的版本對應(yīng)。
更詳細(xì)的查看:https://start.spring.io/actuator/info
這個是官網(wǎng)提供的,會給我們返回更詳細(xì)的版本對應(yīng)關(guān)系,如果我們不知道版本怎么選擇,可以看這個網(wǎng)站 ,網(wǎng)站返回的是json,我們需要格式化一下。
在線json格式化:https://www.sojson.com/
現(xiàn)在要是學(xué)習(xí)最新的SpringCloud和SpringBoot應(yīng)該用哪個版本?
四、Cloud組件
4.1、Cloud組件介紹
這張圖是兩年前springcloud的所有組件,其中有很多組件已經(jīng)不再更新,不再更新不代表不能用,只能說不建議再用了,當(dāng)下最流行的組件是Spring Cloud Alibaba
。
4.1.1、Spring Cloud Netflix
Netflix(Nasdaq NFLX) 美國奈飛公司,是一家會員訂閱制的流媒體播放平臺。由于微服務(wù)的快速發(fā)展,Netflix公司的微服務(wù)又相對比較成熟,于是在技術(shù)上毫無保留的把一整套微服務(wù)架構(gòu)核心技術(shù)棧開源了出來,叫做Netflix OSS,也正是如此,在技術(shù)上依靠開源社區(qū)的力量不斷的壯大。
Pivotal在Netflix開源的一整套核心技術(shù)產(chǎn)品線的同時,做了一系列的封裝,就變成了Spring Cloud;Spring Cloud只是集成Netflix的各個組件,實現(xiàn)了各種starter,例如Eureka-starter、Zuul-starter,可以理解成簡化Netflix微服務(wù)的使用,但是底層仍然是引用的Netflix
,封裝過后同時又可以和其他Spring Cloud產(chǎn)品進(jìn)行無縫集成。
Netflix的各個組件在2018年是最火的一年,而后面相對來說他的很多產(chǎn)品已經(jīng)基本上不再使用,原因就是Netflix的部分組件已經(jīng)停更。再加上由于他的停更,Alibaba就采取了他的思想,研究出了Spring Cloud Alibaba,而對于現(xiàn)在而言Spring Cloud Alibaba基本上完全可以取代Netflix組件。
Netflix源碼社區(qū):https://github.com/Netflix
Spring Cloud Netflix的五大組件(神獸):
- Eureka:服務(wù)注冊和發(fā)現(xiàn),它提供了一個服務(wù)注冊中心、服務(wù)發(fā)現(xiàn)的客戶端,還有一個方便的查看所有注冊的服務(wù)的界面。 所有的服務(wù)使用Eureka的服務(wù)發(fā)現(xiàn)客戶端來將自己注冊到Eureka的服務(wù)器上。
- Zuul:網(wǎng)關(guān),所有的客戶端請求通過這個網(wǎng)關(guān)訪問后臺的服務(wù)。他可以使用一定的路由配置來判斷某一個URL由哪個服務(wù)來處理。并從Eureka獲取注冊的服務(wù)來轉(zhuǎn)發(fā)請求。
- Ribbon:即負(fù)載均衡,Zuul網(wǎng)關(guān)將一個請求發(fā)送給某一個服務(wù)的應(yīng)用的時候,如果一個服務(wù)啟動了多個實例,就會通過Ribbon來通過一定的負(fù)載均衡策略來發(fā)送給某一個服務(wù)實例。
- Feign:服務(wù)客戶端,服務(wù)之間如果需要相互訪問,可以使用RestTemplate,也可以使用Feign客戶端訪問。它默認(rèn)會使用Ribbon來實現(xiàn)負(fù)載均衡。
- Hystrix:監(jiān)控和斷路器。我們只需要在服務(wù)接口上添加Hystrix標(biāo)簽,就可以實現(xiàn)對這個接口的監(jiān)控和斷路器功能。
Spring Cloud Netflix的其他組件:
- Archaius:動態(tài)屬性配置框架,URL、JDBC 和 Amazon DynamoDB 的動態(tài)配置源的實現(xiàn)。
- Turbine:Turbine 是一種用于將服務(wù)器發(fā)送事件 (SSE) JSON 數(shù)據(jù)流聚合成單個流的工具。Hystrix的監(jiān)控中,只能監(jiān)控單個節(jié)點,實際生產(chǎn)中都為集群,因此可以通過Turbine來監(jiān)控集群下Hystrix的metrics情況。
4.1.2、Spring Cloud Alibaba
Spring Cloud Alibaba組件:
- Nacos:Nacos是現(xiàn)在開發(fā)當(dāng)中出場率最高的,他可以完成服務(wù)發(fā)現(xiàn)、配置管理、DNS服務(wù),也就是一個組件可以完成config、Eureka、Bus三個組件的功能。
spring-cloud-starter-alibaba-nacos-discovery
:服務(wù)發(fā)現(xiàn)是微服務(wù)架構(gòu)中的關(guān)鍵組件之一。在這樣的架構(gòu)中,手動為每個客戶端配置服務(wù)列表可能是一項艱巨的任務(wù),并且使動態(tài)擴(kuò)展變得極其困難。Nacos Discovery 幫助您將服務(wù)自動注冊到 Nacos 服務(wù)器
,Nacos 服務(wù)器會跟蹤服務(wù)并動態(tài)刷新服務(wù)列表
。此外,Nacos Discovery 將服務(wù)實例的一些元數(shù)據(jù),如主機(jī)、端口、健康檢查 URL、主頁等注冊到 Nacos。spring-cloud-starter-alibaba-nacos-config
:使用 Spring Cloud Alibaba Nacos Config 基于 Spring Cloud 的編程模型快速接入 Nacos 配置管理能力。
- sentinel:Sentinel中文名稱是哨兵,Sentinel 主要以流量為切入點,從流量控制、熔斷降級、系統(tǒng)負(fù)載保護(hù)等多個維度來幫助用戶提升服務(wù)的穩(wěn)定性。流量監(jiān)控就是您可以看到您的服務(wù)器的監(jiān)控數(shù)據(jù),精確到秒級,甚至可以看到少于 500 個節(jié)點的集群的整體運行狀態(tài),pom依賴
spring-cloud-starter-alibaba-sentinel
。 - dubbo:Alibaba提供了
spring-cloud-starter-dubbo
,對dubbo進(jìn)行的封裝,主要是為了讓我們更好的讓dubbo和Cloud其他組件進(jìn)行集成使用。 - RocketMQ:是一個開源的分布式消息系統(tǒng)。它基于高可用分布式集群技術(shù),提供低延遲、高穩(wěn)定性的消息發(fā)布和訂閱服務(wù)。Alibaba提供了
spring-cloud-starter-stream-rocketmq
,幫我們在cloud當(dāng)中很方便的集成RocketMQ。 - ANS:Alibaba提供了
spring-cloud-starter-alicloud-ans
,ANS(Application Naming Service)是EDAS的一個組件。Spring Cloud 阿里云 ANS 提供符合 Spring Cloud 規(guī)范的商業(yè)版服務(wù)注冊和發(fā)現(xiàn),讓您可以在本地開發(fā)應(yīng)用,在云端運行。 - acm:Alibaba提供了
spring-cloud-starter-alicloud-acm
,Spring Cloud阿里云ACM是Spring Cloud客戶端商用產(chǎn)品ACM (Application Configuration Management)的一個實現(xiàn),是免費的。 - OSS:Alibaba提供了
spring-cloud-starter-alicloud-oss
,OSS(Object Storage Service)是阿里云上的存儲產(chǎn)品。alicloud-oss提供符合 Spring Cloud 規(guī)范的商業(yè)化存儲服務(wù)。提供易于使用的 API,并支持在 Spring 框架中集成 Resource。 - schedulerX:SchedulerX(分布式作業(yè)調(diào)度)是阿里云產(chǎn)品EDAS的一個組件。
spring-cloud-starter-alicloud-schedulerX
提供了符合 Spring Cloud 規(guī)范的分布式作業(yè)調(diào)度。SchedulerX提供高精度秒級、高穩(wěn)定性、高可用性的定時作業(yè)調(diào)度服務(wù),支持簡單的單服務(wù)器作業(yè)、簡單的多主機(jī)作業(yè)、腳本作業(yè)、網(wǎng)格作業(yè)等多種作業(yè)類型。 - SMS:SMS(Short Message Service)是一種覆蓋全球的短信服務(wù),
spring-cloud-starter-alicloud-sms
提供了一個更易用的API,用于快速訪問阿里云的短信服務(wù)。
企業(yè)級分布式應(yīng)用服務(wù) EDAS(Enterprise Distributed Application Service)是一個應(yīng)用托管和微服務(wù)管理的 PaaS 平臺,提供應(yīng)用開發(fā)、部署、監(jiān)控、運維等全棧式解決方案,同時支持 Spring Cloud、Apache Dubbo(以下簡稱 Dubbo )、HSF 等微服務(wù)運行環(huán)境,助力您的各類應(yīng)用輕松上云。
4.1.3、其他組件
- Spring Cloud Config:springcloud config 項目是一個解決分布式系統(tǒng)的配置管理方案。它包含了 client 和 server 兩個部分,server 端提供配置文件的存儲、以接口的形式將配置文件的內(nèi)容提供出去,client 端通過接口獲取數(shù)據(jù)、并依據(jù)此數(shù)據(jù)初始化自己的應(yīng)用。 簡單一點的說就是:在分布式環(huán)境中,很多的服務(wù)都是集群部署,那就意味著這些集群部署的服務(wù)都需要相同的配置文件。所以,這時候就引入了 springcloud config 這個組件,使用該組件來進(jìn)行眾多的配置文件的統(tǒng)一管理。例如,我們在修改某一配置文件時,只需要在遠(yuǎn)程的 gitHub 等工具上面修改即可,不用多次的在眾多的配置文件中來回繁瑣的修改。
- Spring Cloud Bus:Spring Cloud Bus 將分布式系統(tǒng)的節(jié)點與輕量級消息代理鏈接起來。這可以用來廣播 狀態(tài)改變(例如配置改變)或其他管理指令。
- Spring Cloud Sleuth:微服務(wù)跟蹤(sleuth)其實是一個工具,它在整個分布式系統(tǒng)中能跟蹤一個用戶請求的過程(包括數(shù)據(jù)采集,數(shù)據(jù)傳輸,數(shù)據(jù)存儲,數(shù)據(jù)分析,數(shù)據(jù)可視化),捕獲這些跟蹤數(shù)據(jù),就能構(gòu)建微服務(wù)的整個調(diào)用鏈的視圖,這是調(diào)試和監(jiān)控微服務(wù)的關(guān)鍵工具。
- Spring Cloud Data Flow:Spring Cloud Data Flow是什么,雖然已經(jīng)出現(xiàn)一段時間了,但想必很多人不知道,因為在項目中很少有人用。不僅找不到很多中文資料,英文資料也一樣少的可憐。Spring Cloud Data Flow是基于微服務(wù)的,專門用于流式和批式數(shù)據(jù)處理的框架。
- Spring Cloud Security:Spring Cloud Security 用于以最小的麻煩構(gòu)建安全的應(yīng)用程序和服務(wù)?;?Spring Boot 和 Spring Security OAuth2,我們可以快速創(chuàng)建實現(xiàn)常見模式的系統(tǒng),如單點登錄、令牌中繼和令牌交換。
- Spring Cloud Zookeeper:通過一些簡單的注釋,您可以快速啟用和配置應(yīng)用程序中的常見模式,并使用 Zookeeper 構(gòu)建大型分布式系統(tǒng)。提供的模式包括服務(wù)發(fā)現(xiàn)和分布式配置。
- Spring Cloud Stream:Spring Cloud Stream 是一個框架,用于構(gòu)建與共享消息系統(tǒng)連接的高度可擴(kuò)展的事件驅(qū)動微服務(wù)。他可以和各種消息框架進(jìn)行整合。
- Spring Cloud CLI:Spring Boot CLI為Spring Cloud提供Spring Boot命令行功能。您可以編寫 Groovy 腳本來運行 Spring Cloud 組件應(yīng)用程序(例如)。您還可以輕松地執(zhí)行加密和解密等操作,以支持具有秘密配置值的 Spring Cloud Config 客戶端。使用 Launcher CLI,您可以方便地從命令行一次性啟動 Eureka、Zipkin、Config Server 等服務(wù)(在開發(fā)時非常有用)。
- Spring Cloud OpenFeign:同F(xiàn)eign是一樣的,是一個遠(yuǎn)程調(diào)用框架,F(xiàn)eign已經(jīng)停止更新,OpenFeign在Feign的基礎(chǔ)上添加了對 Spring MVC 注釋的支持。
- Spring Cloud Task:Spring Cloud Task 允許用戶使用 Spring Cloud 開發(fā)和運行短期微服務(wù),并在本地、云中甚至在 Spring Cloud Data Flow 上運行它們。只需將@EnableTask您的應(yīng)用程序作為 Spring Boot 應(yīng)用程序(單個應(yīng)用程序上下文)添加并運行。
- Spring Cloud Connectors:簡化了在 Cloud Foundry 和 Heroku 等云平臺中連接服務(wù)和獲得操作環(huán)境意識的過程,尤其是對于 Spring 應(yīng)用程序。它是為可擴(kuò)展性而設(shè)計的:您可以使用提供的云連接器之一或為您的云平臺編寫一個,您可以使用對常用服務(wù)(關(guān)系數(shù)據(jù)庫、MongoDB、Redis、RabbitMQ)的內(nèi)置支持或擴(kuò)展 Spring與您自己的服務(wù)一起使用的云連接器。
- Spring Cloud Circuit Breaker:提供了跨不同斷路器實現(xiàn)的抽象。它提供了在您的應(yīng)用程序中使用的一致 API,讓您開發(fā)人員可以選擇最適合您的應(yīng)用程序需求的斷路器實現(xiàn)。
- Spring Cloud Consul:Consul是 HashiCorp 公司推出的開源工具,用于實現(xiàn)分布式系統(tǒng)的服務(wù)發(fā)現(xiàn)與配置。與其它分布式服 務(wù)注冊與發(fā)現(xiàn)的方案,Consul 的方案更“一站式”,內(nèi)置了服務(wù)注冊與發(fā)現(xiàn)框 架、分布一致性協(xié)議實 現(xiàn)、健康檢查、Key/Value 存儲、多數(shù)據(jù)中心方案,不再需要依賴其它工具(比如 ZooKeeper 等)。 使用起來也較為簡單。Consul 使用 Go 語言編寫,因此具有天然可移植性(支持Linux、windows和 Mac OS X);安裝包僅包含一個可執(zhí)行文件,方便部署,與 Docker 等輕量級容器可無縫配合。
- Spring Cloud Gateway:目前市場上很流行的網(wǎng)關(guān)服務(wù),功能強(qiáng)大豐富,性能好,官方基準(zhǔn)測試 RPS (每秒請求數(shù))是Zuul的1.6倍,能與 SpringCloud 生態(tài)很好兼容,單從流式編程+支持異步上也足以讓開發(fā)者選擇它了。
4.2、停更的組件
1. eureka停更:
eureka目前已經(jīng)在Netflix社區(qū)明確聲明不在更新!而springcloud當(dāng)中的eureka的starter仍然在更新,但是他更新只是為了兼容springcloud版本,并改變不了eureka已經(jīng)停更的事實。
就好比假如
mysql版本不再更新了,而navcat客戶端還在不斷更新,我們天天跟Navicat打交道,以至于很多人不知道其實項目已經(jīng)是個死項目了,沒有發(fā)展前途了。
Netflix的eureka社區(qū):https://github.com/Netflix/eureka/wiki
2. Hystrix停更不停用:
NetfLix官網(wǎng)明確聲明:Hystrix 不再處于積極開發(fā)階段,目前處于維護(hù)模式。Hystrix(版本 1.5.18)足夠穩(wěn)定,可以滿足 Netflix 對我們現(xiàn)有應(yīng)用程序的需求。
3. Feign停更:
Feign是在2019就已經(jīng)不再更新了,通過maven網(wǎng)站就可以看出來,隨之取代的是OpenFeign,從名字上就可以知道,他是Feign的升級版。
maven網(wǎng)站:https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-feign
4. Ribbon停更:
項目處于維護(hù)狀態(tài) ,已經(jīng)好久沒有更新過了。 https://github.com/Netflix/ribbon
5. Config:
Config沒用停更,只不過現(xiàn)在大部分人都采用nacos來做配置中心。
6. Archaius停更:
Netflix下的Archaius在2018年就已經(jīng)停更。
7. Bus:
SpringCloud原生的服務(wù)總線組件,現(xiàn)在風(fēng)頭也被Nacos搶了。
到此這篇關(guān)于關(guān)于SpringCloud的使用以及現(xiàn)狀的文章就介紹到這了,更多相關(guān)SpringCloud詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中使用JWT生成Token進(jìn)行接口鑒權(quán)實現(xiàn)方法
這篇文章主要介紹了Java中使用JWT生成Token進(jìn)行接口鑒權(quán)實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08SpringBoot實現(xiàn)WebSocket即時通訊的示例代碼
本文主要介紹了SpringBoot實現(xiàn)WebSocket即時通訊的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04SpringBoot+Redis使用AOP防止重復(fù)提交的實現(xiàn)
本文主要介紹了SpringBoot+Redis使用AOP防止重復(fù)提交的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07使用Springboot實現(xiàn)word在線編輯保存
PageOffice目前支持的Web編程語言及架構(gòu)有:Java(JSP、SSH、MVC等),ASP.NET(C#、VB.NET、MVC、Razor等),PHP,ASP,本篇文章就帶你使用Springboot整合PageOffice實現(xiàn)word在線編輯保存2021-08-08spring cloud oauth2 實現(xiàn)用戶認(rèn)證登錄的示例代碼
這篇文章主要介紹了spring cloud oauth2 實現(xiàn)用戶認(rèn)證登錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10java 中函數(shù)的參數(shù)傳遞詳細(xì)介紹
這篇文章主要介紹了 java 中函數(shù)的參數(shù)傳遞詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2016-11-11