1、什么是Spring Cloud ?
Spring cloud 流應(yīng)用程序啟動器是基于 Spring Boot 的 Spring 集成應(yīng)用程序,提供與外部系統(tǒng)的集成。Spring cloud Task,一個生命周期短暫的微服務(wù)框架,用于快速構(gòu)建執(zhí)行有限數(shù)據(jù)處理的應(yīng)用程序。
Spring Cloud各個微服務(wù)之間為什么要用http交互?難道不慢嗎?
Spring Cloud是一個為分布式微服務(wù)架構(gòu)構(gòu)建應(yīng)用程序的開發(fā)工具箱,是Spring Boot的擴(kuò)展,通過各種微服務(wù)組件的集成,極大地簡化了微服務(wù)應(yīng)用程序的構(gòu)建和開發(fā)。在分布式系統(tǒng)中,各個微服務(wù)之間的通信是非常重要的,而HTTP作為通信協(xié)議具有普遍性和可擴(kuò)展性,是Spring Cloud微服務(wù)架構(gòu)中主流的通信方式。
盡管使用HTTP作為微服務(wù)之間的通信協(xié)議存在一定的網(wǎng)絡(luò)開銷,但是這種不可避免的網(wǎng)絡(luò)開銷遠(yuǎn)低于我們所能得到的好處。使用HTTP通信可以實現(xiàn)松耦合和異步通信,微服務(wù)之間可以彼此獨立地進(jìn)行開發(fā)和測試,單個微服務(wù)的故障不會影響整個系統(tǒng)的運行,也可以支持各種不同的技術(shù)棧之間的互操作性。
另外,使用HTTP作為通信協(xié)議還具有優(yōu)秀的可擴(kuò)展性。HTTP協(xié)議定義了不同的請求方法(例如 GET、POST、DELETE 等),不同請求方法的擴(kuò)展格式也很靈活,可以用來傳遞各種類型的數(shù)據(jù)和格式,同時HTTP協(xié)議支持緩存,減少重復(fù)性的數(shù)據(jù)傳輸和帶寬開銷。
當(dāng)然,為了提高微服務(wù)之間的通信效率,我們也可以通過一些優(yōu)化手段來減少HTTP協(xié)議的網(wǎng)絡(luò)開銷。例如,使用數(shù)據(jù)壓縮和緩存技術(shù)來壓縮和緩存請求和響應(yīng),減少網(wǎng)絡(luò)數(shù)據(jù)傳輸量和響應(yīng)時間;使用負(fù)載均衡技術(shù)來合理地分配請求和響應(yīng),避免單個微服務(wù)出現(xiàn)性能瓶頸;使用高速緩存技術(shù)來緩存請求和響應(yīng),避免重復(fù)的請求和響應(yīng)等等。
因此,Spring Cloud各個微服務(wù)之間使用HTTP交互是一個比較成熟的選擇。雖然它可能存在一些網(wǎng)絡(luò)開銷,但是在實際應(yīng)用中,這種開銷是可以優(yōu)化和控制的,甚至可以提高系統(tǒng)的可擴(kuò)展性和可靠性。
本文已經(jīng)收錄到Github倉庫,該倉庫包含計算機基礎(chǔ)、Java基礎(chǔ)、多線程、JVM、數(shù)據(jù)庫、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服務(wù)、設(shè)計模式、架構(gòu)、校招社招分享等核心知識點,歡迎star~
Github地址
Github地址
如果訪問不了Github,可以訪問碼云地址。
碼云地址
2、什么是微服務(wù)?
微服務(wù)架構(gòu)是一種架構(gòu)模式或者說是一種架構(gòu)風(fēng)格,它提倡將單一應(yīng)用程序劃分為一組小的服務(wù),每個服務(wù)運行在其獨立的自己的進(jìn)程中,服務(wù)之間相互協(xié)調(diào)、互相配合,為用戶提供最終價值。服務(wù)之間采用輕量級的通信機制互相溝通(通常是基于HTTP的RESTful API),每個服務(wù)都圍繞著具體的業(yè)務(wù)進(jìn)行構(gòu)建,并且能夠被獨立的構(gòu)建在生產(chǎn)環(huán)境、類生產(chǎn)環(huán)境等。另外,應(yīng)避免統(tǒng)一的、集中式的服務(wù)管理機制,對具體的一個服務(wù)而言,應(yīng)根據(jù)業(yè)務(wù)上下文,選擇合適的語言、工具對其進(jìn)行構(gòu)建,可以有一個非常輕量級的集中式管理來協(xié)調(diào)這些服務(wù),可以使用不同的語言來編寫服務(wù),也可以使用不同的數(shù)據(jù)存儲。
通俗地來講:
微服務(wù)就是一個獨立的職責(zé)單一的服務(wù)應(yīng)用程序。在 intellij idea 工具里面就是用maven開發(fā)的一個個獨立的module,具體就是使用springboot 開發(fā)的一個小的模塊,處理單一專業(yè)的業(yè)務(wù)邏輯,一個模塊只做一個事情。
微服務(wù)強調(diào)的是服務(wù)大小,關(guān)注的是某一個點,具體解決某一個問題/落地對應(yīng)的一個服務(wù)應(yīng)用,可以看做是idea 里面一個 module。
3、Spring Cloud有什么優(yōu)勢
使用 Spring Boot 開發(fā)分布式微服務(wù)時,我們面臨以下問題
- 與分布式系統(tǒng)相關(guān)的復(fù)雜性-這種開銷包括網(wǎng)絡(luò)問題,延遲開銷,帶寬問題,安全問題。
- 服務(wù)發(fā)現(xiàn)-服務(wù)發(fā)現(xiàn)工具管理群集中的流程和服務(wù)如何查找和互相交談。它涉及一個服務(wù)目錄,在該目錄中注冊服務(wù),然后能夠查找并連接到該目錄中的服務(wù)。
- 冗余-分布式系統(tǒng)中的冗余問題。
- 負(fù)載平衡 --負(fù)載平衡改善跨多個計算資源的工作負(fù)荷,諸如計算機,計算機集群,網(wǎng)絡(luò)鏈路,中央處理單元,或磁盤驅(qū)動器的分布。
- 性能-問題 由于各種運營開銷導(dǎo)致的性能問題。
- 部署復(fù)雜性-Devops 技能的要求。
4、微服務(wù)之間如何獨立通訊的?
同步通信:dobbo通過 RPC 遠(yuǎn)程過程調(diào)用、springcloud通過 REST 接口json調(diào)用等。
異步:消息隊列,如:RabbitMq
、ActiveM
、Kafka
等消息隊列。
5、 什么是服務(wù)熔斷?什么是服務(wù)降級?
熔斷機制是應(yīng)對雪崩效應(yīng)的一種微服務(wù)鏈路保護(hù)機制。當(dāng)某個微服務(wù)不可用或者響應(yīng)時間太長時,會進(jìn)行服務(wù)降級,進(jìn)而熔斷該節(jié)點微服務(wù)的調(diào)用,快速返回“錯誤”的響應(yīng)信息。當(dāng)檢測到該節(jié)點微服務(wù)調(diào)用響應(yīng)正常后恢復(fù)調(diào)用鏈路。在Spring Cloud框架里熔斷機制通過Hystrix實現(xiàn),Hystrix會監(jiān)控微服務(wù)間調(diào)用的狀況,當(dāng)失敗的調(diào)用到一定閾值,缺省是5秒內(nèi)調(diào)用20次,如果失敗,就會啟動熔斷機制。
服務(wù)降級,一般是從整體負(fù)荷考慮。就是當(dāng)某個服務(wù)熔斷之后,服務(wù)器將不再被調(diào)用,此時客戶端可以自己準(zhǔn)備一個本地的fallback回調(diào),返回一個缺省值。這樣做,雖然水平下降,但好歹可用,比直接掛掉強。
Hystrix
相關(guān)注解@EnableHystrix
:開啟熔斷 @HystrixCommand(fallbackMethod=”XXX”)
,聲明一個失敗回滾處理函數(shù)XXX
,當(dāng)被注解的方法執(zhí)行超時(默認(rèn)是1000毫秒),就會執(zhí)行fallback
函數(shù),返回錯誤提示。
6、 請說說Eureka和zookeeper 的區(qū)別?
Zookeeper保證了CP,Eureka保證了AP。
A:高可用
C:一致性
P:分區(qū)容錯性
1.當(dāng)向注冊中心查詢服務(wù)列表時,我們可以容忍注冊中心返回的是幾分鐘以前的信息,但不能容忍直接down掉不可用。也就是說,服務(wù)注冊功能對高可用性要求比較高,但zk會出現(xiàn)這樣一種情況,當(dāng)master節(jié)點因為網(wǎng)絡(luò)故障與其他節(jié)點失去聯(lián)系時,剩余節(jié)點會重新選leader。問題在于,選取leader時間過長,30 ~ 120s,且選取期間zk集群都不可用,這樣就會導(dǎo)致選取期間注冊服務(wù)癱瘓。在云部署的環(huán)境下,因網(wǎng)絡(luò)問題使得zk集群失去master節(jié)點是較大概率會發(fā)生的事,雖然服務(wù)能夠恢復(fù),但是漫長的選取時間導(dǎo)致的注冊長期不可用是不能容忍的。
2.Eureka保證了可用性,Eureka各個節(jié)點是平等的,幾個節(jié)點掛掉不會影響正常節(jié)點的工作,剩余的節(jié)點仍然可以提供注冊和查詢服務(wù)。而Eureka的客戶端向某個Eureka注冊或發(fā)現(xiàn)時發(fā)生連接失敗,則會自動切換到其他節(jié)點,只要有一臺Eureka還在,就能保證注冊服務(wù)可用,只是查到的信息可能不是最新的。除此之外,Eureka還有自我保護(hù)機制,如果在15分鐘內(nèi)超過85%的節(jié)點沒有正常的心跳,那么Eureka就認(rèn)為客戶端與注冊中心發(fā)生了網(wǎng)絡(luò)故障,此時會出現(xiàn)以下幾種情況:
①、Eureka不在從注冊列表中移除因為長時間沒有收到心跳而應(yīng)該過期的服務(wù)。
②、Eureka仍然能夠接受新服務(wù)的注冊和查詢請求,但是不會被同步到其他節(jié)點上(即保證當(dāng)前節(jié)點仍然可用)
③、當(dāng)網(wǎng)絡(luò)穩(wěn)定時,當(dāng)前實例新的注冊信息會被同步到其他節(jié)點。
因此,Eureka可以很好地應(yīng)對因網(wǎng)絡(luò)故障導(dǎo)致部分節(jié)點失去聯(lián)系的情況,而不會像Zookeeper那樣使整個微服務(wù)癱瘓
另外給大家分享一個Github倉庫,上面有大彬整理的300多本經(jīng)典的計算機書籍PDF,包括C語言、C++、Java、Python、前端、數(shù)據(jù)庫、操作系統(tǒng)、計算機網(wǎng)絡(luò)、數(shù)據(jù)結(jié)構(gòu)和算法、機器學(xué)習(xí)、編程人生等,可以star一下,下次找書直接在上面搜索,倉庫持續(xù)更新中~
Github地址:https://github.com/Tyson0314/java-books文章來源地址http://www.zghlxwxcb.cn/news/detail-444258.html
7、SpringBoot和SpringCloud的區(qū)別?
SpringBoot專注于快速方便得開發(fā)單個個體微服務(wù)。
SpringCloud是關(guān)注全局的微服務(wù)協(xié)調(diào)整理治理框架,它將SpringBoot開發(fā)的一個個單體微服務(wù)整合并管理起來,
為各個微服務(wù)之間提供,配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會話等等集成服務(wù)
SpringBoot可以離開SpringCloud獨立使用開發(fā)項目, 但是SpringCloud離不開SpringBoot ,屬于依賴的關(guān)系.
SpringBoot專注于快速、方便得開發(fā)單個微服務(wù)個體,SpringCloud關(guān)注全局的服務(wù)治理框架。
8、負(fù)載平衡的意義什么?
在計算中,負(fù)載平衡可以改善跨計算機,計算機集群,網(wǎng)絡(luò)鏈接,中央處理單元或磁盤驅(qū)動器等多種計算資源的工作負(fù)載分布。負(fù)載平衡旨在優(yōu)化資源使用,最大化吞吐量,最小化響應(yīng)時間并避免任何單一資源 的過載。使用多個組件進(jìn)行負(fù)載平衡而不是單個組件可能會通過冗余來提高可靠性和可用性。負(fù)載平衡通常涉及專用軟件或硬件,例如多層交換機或域名系統(tǒng)服務(wù)器進(jìn)程。
9、什么是Hystrix?它如何實現(xiàn)容錯?
Hystrix是一個延遲和容錯庫,旨在隔離遠(yuǎn)程系統(tǒng),服務(wù)和第三方庫的訪問點,當(dāng)出現(xiàn)故障是不可避免的故障時,停止級聯(lián)故障并在復(fù)雜的分布式系統(tǒng)中實現(xiàn)彈性。
通常對于使用微服務(wù)架構(gòu)開發(fā)的系統(tǒng),涉及到許多微服務(wù)。這些微服務(wù)彼此協(xié)作。
思考一下微服務(wù):
假設(shè)如果上圖中的微服務(wù)9失敗了,那么使用傳統(tǒng)方法我們將傳播一個異常。但這仍然會導(dǎo)致整個系統(tǒng)崩潰。
隨著微服務(wù)數(shù)量的增加,這個問題變得更加復(fù)雜。微服務(wù)的數(shù)量可以高達(dá)1000.這是hystrix出現(xiàn)的地方 我們將使用Hystrix在這種情況下的Fallback方法功能。我們有兩個服務(wù)employee-consumer使用由employee-consumer公開的服務(wù)。
簡化圖如下所示
現(xiàn)在假設(shè)由于某種原因,employee-producer公開的服務(wù)會拋出異常。我們在這種情況下使用Hystrix定義了一個回退方法。這種后備方法應(yīng)該具有與公開服務(wù)相同的返回類型。如果暴露服務(wù)中出現(xiàn)異常,則回退方法將返回一些值。
10、什么是Hystrix斷路器?我們需要它嗎?
由于某些原因,employee-consumer公開服務(wù)會引發(fā)異常。在這種情況下使用Hystrix我們定義了一個回退方法。如果在公開服務(wù)中發(fā)生異常,則回退方法返回一些默認(rèn)值。
如果firstPage method() 中的異常繼續(xù)發(fā)生,則Hystrix電路將中斷,并且員工使用者將一起跳過firtsPage方法,并直接調(diào)用回退方法。斷路器的目的是給第一頁方法或第一頁方法可能調(diào)用的其他方法留出時間,并導(dǎo)致異?;謴?fù)??赡馨l(fā)生的情況是,在負(fù)載較小的情況下,導(dǎo)致異常的問題有更好的恢復(fù)機會 。
11、說說 RPC 的實現(xiàn)原理
首先需要有處理網(wǎng)絡(luò)連接通訊的模塊,負(fù)責(zé)連接建立、管理和消息的傳輸。其次需要有編 解碼的模塊,因為網(wǎng)絡(luò)通訊都是傳輸?shù)淖止?jié)碼,需要將我們使用的對象序列化和反序列化。剩下的就是客戶端和服務(wù)器端的部分,服務(wù)器端暴露要開放的服務(wù)接口,客戶調(diào)用服 務(wù)接口的一個代理實現(xiàn),這個代理實現(xiàn)負(fù)責(zé)收集數(shù)據(jù)、編碼并傳輸給服務(wù)器然后等待結(jié)果返回。
12,eureka自我保護(hù)機制是什么?
當(dāng)Eureka Server 節(jié)點在短時間內(nèi)丟失了過多實例的連接時(比如網(wǎng)絡(luò)故障或頻繁啟動關(guān)閉客戶端)節(jié)點會進(jìn)入自我保護(hù)模式,保護(hù)注冊信息,不再刪除注冊數(shù)據(jù),故障恢復(fù)時,自動退出自我保護(hù)模式。
13,什么是Ribbon?
ribbon是一個負(fù)載均衡客戶端,可以很好地控制htt和tcp的一些行為。feign默認(rèn)集成了ribbon
。
14,什么是 Netflix Feign?它的優(yōu)點是什么?
Feign 是受到 Retrofit,JAXRS-2.0 和 WebSocket 啟發(fā)的 java 客戶端聯(lián)編程序。
Feign 的第一個目標(biāo)是將約束分母的復(fù)雜性統(tǒng)一到 http apis,而不考慮其穩(wěn)定性。
特點:
- Feign 采用的是基于接口的注解
- Feign 整合了ribbon,具有負(fù)載均衡的能力
- 整合了Hystrix,具有熔斷的能力
使用方式
- 添加pom依賴。
- 啟動類添加
@EnableFeignClients
- 定義一個接口
@FeignClient(name=“xxx”)
指定調(diào)用哪個服務(wù)
15, Ribbon和Feign的區(qū)別?
1.啟動類注解不同,Ribbon是@RibbonClient feign的是@EnableFeignClients;2.服務(wù)指定的位置不同,Ribbon是在@RibbonClient注解上聲明,F(xiàn)eign則是在定義抽象方法的接口中使用@FeignClient聲明;3.調(diào)用方式不同,Ribbon需要自己構(gòu)建http請求,模擬http請求。
16、Spring Cloud 的核心組件有哪些?
- Eureka:服務(wù)注冊于發(fā)現(xiàn)。
- Feign:基于動態(tài)代理機制,根據(jù)注解和選擇的機器,拼接請求 url 地址,發(fā)起請求。
- Ribbon:實現(xiàn)負(fù)載均衡,從一個服務(wù)的多臺機器中選擇一臺。
- Hystrix:提供線程池,不同的服務(wù)走不同的線程池,實現(xiàn)了不同服務(wù)調(diào)用的隔離,避免了服務(wù)雪崩的問題。
- Zuul:網(wǎng)關(guān)管理,由 Zuul 網(wǎng)關(guān)轉(zhuǎn)發(fā)請求給對應(yīng)的服務(wù)。
17、說說Spring Boot和Spring Cloud的關(guān)系
Spring Boot是Spring推出用于解決傳統(tǒng)框架配置文件冗余,裝配組件繁雜的基于Maven的解決方案,旨在快速搭建單個微服務(wù)而Spring Cloud專注于解決各個微服務(wù)之間的協(xié)調(diào)與配置,服務(wù)之間的通信,熔斷,負(fù)載均衡等技術(shù)維度并相同,并且Spring Cloud是依賴于Spring Boot的,而Spring Boot并不是依賴與Spring Cloud,甚至還可以和Dubbo進(jìn)行優(yōu)秀的整合開發(fā)
總結(jié)
- SpringBoot專注于快速方便的開發(fā)單個個體的微服務(wù)
- SpringCloud是關(guān)注全局的微服務(wù)協(xié)調(diào)整理治理框架,整合并管理各個微服務(wù),為各個微服務(wù)之間提供,配置管理,服務(wù)發(fā)現(xiàn),斷路器,路由,事件總線等集成服務(wù)
- Spring Boot不依賴于Spring Cloud,Spring Cloud依賴于Spring Boot,屬于依賴關(guān)系
- Spring Boot專注于快速,方便的開發(fā)單個的微服務(wù)個體,Spring Cloud關(guān)注全局的服務(wù)治理框架
18、說說微服務(wù)之間是如何獨立通訊的?
遠(yuǎn)程過程調(diào)用(Remote Procedure Invocation)
也就是我們常說的服務(wù)的注冊與發(fā)現(xiàn),直接通過遠(yuǎn)程過程調(diào)用來訪問別的service。
優(yōu)點:簡單,常見,因為沒有中間件代理,系統(tǒng)更簡單
缺點:只支持請求/響應(yīng)的模式,不支持別的,比如通知、請求/異步響應(yīng)、發(fā)布/訂閱、發(fā)布/異步響應(yīng),降低了可用性,因為客戶端和服務(wù)端在請求過程中必須都是可用的。
消息
使用異步消息來做服務(wù)間通信。服務(wù)間通過消息管道來交換消息,從而通信。
優(yōu)點:把客戶端和服務(wù)端解耦,更松耦合,提高可用性,因為消息中間件緩存了消息,直到消費者可以消費, 支持很多通信機制比如通知、請求/異步響應(yīng)、發(fā)布/訂閱、發(fā)布/異步響應(yīng)。
缺點:消息中間件有額外的復(fù)雜。
19、Spring Cloud如何實現(xiàn)服務(wù)的注冊?
服務(wù)發(fā)布時,指定對應(yīng)的服務(wù)名,將服務(wù)注冊到 注冊中心(Eureka 、Zookeeper)
。
注冊中心加@EnableEurekaServer
,服務(wù)用@EnableDiscoveryClient
,然后用ribbon或feign進(jìn)行服務(wù)直接的調(diào)用發(fā)現(xiàn)。
20、什么是服務(wù)熔斷?
在復(fù)雜的分布式系統(tǒng)中,微服務(wù)之間的相互調(diào)用,有可能出現(xiàn)各種各樣的原因?qū)е路?wù)的阻塞,在高并發(fā)場景下,服務(wù)的阻塞意味著線程的阻塞,導(dǎo)致當(dāng)前線程不可用,服務(wù)器的線程全部阻塞,導(dǎo)致服務(wù)器崩潰,由于服務(wù)之間的調(diào)用關(guān)系是同步的,會對整個微服務(wù)系統(tǒng)造成服務(wù)雪崩
為了解決某個微服務(wù)的調(diào)用響應(yīng)時間過長或者不可用進(jìn)而占用越來越多的系統(tǒng)資源引起雪崩效應(yīng)就需要進(jìn)行服務(wù)熔斷和服務(wù)降級處理。
所謂的服務(wù)熔斷指的是某個服務(wù)故障或異常一起類似顯示世界中的“保險絲"當(dāng)某個異常條件被觸發(fā)就直接熔斷整個服務(wù),而不是一直等到此服務(wù)超時。
服務(wù)熔斷就是相當(dāng)于我們電閘的保險絲,一旦發(fā)生服務(wù)雪崩的,就會熔斷整個服務(wù),通過維護(hù)一個自己的線程池,當(dāng)線程達(dá)到閾值的時候就啟動服務(wù)降級,如果其他請求繼續(xù)訪問就直接返回fallback的默認(rèn)值
21、了解Eureka自我保護(hù)機制嗎?
當(dāng)Eureka Server 節(jié)點在短時間內(nèi)丟失了過多實例的連接時(比如網(wǎng)絡(luò)故障或頻繁啟動關(guān)閉客戶端)節(jié)點會進(jìn)入自我保護(hù)模式,保護(hù)注冊信息,不再刪除注冊數(shù)據(jù),故障恢復(fù)時,自動退出自我保護(hù)模式。
22、熟悉 Spring Cloud Bus 嗎?
spring cloud bus 將分布式的節(jié)點用輕量的消息代理連接起來,它可以用于廣播配置文件的更改或者服務(wù)直接的通訊,也可用于監(jiān)控。如果修改了配置文件,發(fā)送一次請求,所有的客戶端便會重新讀取配置文件。
23、Spring Cloud 斷路器有什么作用?
當(dāng)一個服務(wù)調(diào)用另一個服務(wù)由于網(wǎng)絡(luò)原因或自身原因出現(xiàn)問題,調(diào)用者就會等待被調(diào)用者的響應(yīng),當(dāng)更多的服務(wù)請求到這些資源導(dǎo)致更多的請求等待,發(fā)生連鎖效應(yīng)(雪崩效應(yīng))。一段時間內(nèi) 達(dá)到一定的次數(shù)無法調(diào)用 并且多次監(jiān)測沒有恢復(fù)的跡象,這時候斷路器完全打開 那么下次請求就不會請求到該服務(wù)。
半開:短時間內(nèi) 有恢復(fù)跡象 斷路器會將部分請求發(fā)給該服務(wù),正常調(diào)用時 斷路器關(guān)閉。關(guān)閉:當(dāng)服務(wù)一直處于正常狀態(tài) 能正常調(diào)用。
24、了解Spring Cloud Config 嗎?
在分布式系統(tǒng)中,由于服務(wù)數(shù)量巨多,為了方便服務(wù)配置文件統(tǒng)一管理,實時更新,所以需要分布式配置中心組件。在Spring Cloud中,有分布式配置中心組件Spring Cloud Config
,它支持配置服務(wù)放在配置服務(wù)的內(nèi)存中(即本地),也支持放在遠(yuǎn)程Git倉庫中。
在Spring Cloud Config
組件中,分兩個角色,一是config server,二是config client。
使用方式:
- 添加pom依賴
- 配置文件添加相關(guān)配置
- 啟動類添加注解@EnableConfigServer
25、說說你對Spring Cloud Gateway的理解
Spring Cloud Gateway是Spring Cloud官方推出的第二代網(wǎng)關(guān)框架,取代Zuul網(wǎng)關(guān)。網(wǎng)關(guān)作為流量的,在微服務(wù)系統(tǒng)中有著非常作用,網(wǎng)關(guān)常見的功能有路由轉(zhuǎn)發(fā)、權(quán)限校驗、限流控制等作用。
使用了一個RouteLocatorBuilder的bean去創(chuàng)建路由,除了創(chuàng)建路由RouteLocatorBuilder可以讓你添加各種predicates和filters,predicates斷言的意思,顧名思義就是根據(jù)具體的請求的規(guī)則,由具體的route去處理,filters是各種過濾器,用來對請求做各種判斷和修改。
最后給大家分享一個Github倉庫,上面有大彬整理的300多本經(jīng)典的計算機書籍PDF,包括C語言、C++、Java、Python、前端、數(shù)據(jù)庫、操作系統(tǒng)、計算機網(wǎng)絡(luò)、數(shù)據(jù)結(jié)構(gòu)和算法、機器學(xué)習(xí)、編程人生等,可以star一下,下次找書直接在上面搜索,倉庫持續(xù)更新中~文章來源:http://www.zghlxwxcb.cn/news/detail-444258.html
Github地址:https://github.com/Tyson0314/java-books
到了這里,關(guān)于一天吃透SpringCloud面試八股文的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!