前言
前段時(shí)間由于特殊原因,導(dǎo)致我們的面試連環(huán)炮斷更了,剛好上周一位老鐵去面試被問到了Spring Cloud,然后結(jié)合他的反饋,今天我們繼續(xù)走起SpringCloud面試連環(huán)炮。
歡迎大家關(guān)注我:
Spring Cloud核心知識總結(jié)
下面是一張Spring Cloud核心組件關(guān)系圖:
從這張圖中,其實(shí)我們是可以獲取很多信息的,希望大家細(xì)細(xì)品嘗。
下面是Spring Cloud Netflix
和Spring Cloud Alibaba
核心組件的總結(jié):
活不多說,我們直接開始 Spring Cloud 連環(huán)炮。
連環(huán)炮走起
1、什么是Spring Cloud ?
Spring cloud 流應(yīng)用程序啟動(dòng)器是基于 Spring Boot 的 Spring 集成應(yīng)用程序,提供與外部系統(tǒng)的集成。Spring cloud Task,一個(gè)生命周期短暫的微服務(wù)框架,用于快速構(gòu)建執(zhí)行有限數(shù)據(jù)處理的應(yīng)用程序。
2、什么是微服務(wù)?
微服務(wù)架構(gòu)是一種架構(gòu)模式或者說是一種架構(gòu)風(fēng)格,它提倡將單一應(yīng)用程序劃分為一組小的服務(wù),每個(gè)服務(wù)運(yùn)行在其獨(dú)立的自己的進(jìn)程中,服務(wù)之間相互協(xié)調(diào)、互相配合,為用戶提供最終價(jià)值。服務(wù)之間采用輕量級的通信機(jī)制互相溝通(通常是基于HTTP的RESTful API),每個(gè)服務(wù)都圍繞著具體的業(yè)務(wù)進(jìn)行構(gòu)建,并且能夠被獨(dú)立的構(gòu)建在生產(chǎn)環(huán)境、類生產(chǎn)環(huán)境等。另外,應(yīng)避免統(tǒng)一的、集中式的服務(wù)管理機(jī)制,對具體的一個(gè)服務(wù)而言,應(yīng)根據(jù)業(yè)務(wù)上下文,選擇合適的語言、工具對其進(jìn)行構(gòu)建,可以有一個(gè)非常輕量級的集中式管理來協(xié)調(diào)這些服務(wù),可以使用不同的語言來編寫服務(wù),也可以使用不同的數(shù)據(jù)存儲。
通俗的來講:
微服務(wù)就是一個(gè)獨(dú)立的職責(zé)單一的服務(wù)應(yīng)用程序。在 intellij idea 工具里面就是用maven開發(fā)的一個(gè)個(gè)獨(dú)立的module,具體就是使用springboot 開發(fā)的一個(gè)小的模塊,處理單一專業(yè)的業(yè)務(wù)邏輯,一個(gè)模塊只做一個(gè)事情。
微服務(wù)強(qiáng)調(diào)的是服務(wù)大小,關(guān)注的是某一個(gè)點(diǎn),具體解決某一個(gè)問題/落地對應(yīng)的一個(gè)服務(wù)應(yīng)用,可以看做是idea 里面一個(gè) module。
3、Spring Cloud有什么優(yōu)勢
使用 Spring Boot 開發(fā)分布式微服務(wù)時(shí),我們面臨以下問題
與分布式系統(tǒng)相關(guān)的復(fù)雜性-這種開銷包括網(wǎng)絡(luò)問題,延遲開銷,帶寬問題,安全問題。 服務(wù)發(fā)現(xiàn)-服務(wù)發(fā)現(xiàn)工具管理群集中的流程和服務(wù)如何查找和互相交談。它涉及一個(gè)服務(wù)目錄,在該目錄中注冊服務(wù),然后能夠查找并連接到該目錄中的服務(wù)。 冗余-分布式系統(tǒng)中的冗余問題。 負(fù)載平衡 --負(fù)載平衡改善跨多個(gè)計(jì)算資源的工作負(fù)荷,諸如計(jì)算機(jī),計(jì)算機(jī)集群,網(wǎng)絡(luò)鏈路,中央處理單元,或磁盤驅(qū)動(dòng)器的分布。 性能-問題 由于各種運(yùn)營開銷導(dǎo)致的性能問題。 部署復(fù)雜性-Devops 技能的要求。
4、微服務(wù)之間如何獨(dú)立通訊的?
同步通信:dobbo通過 RPC 遠(yuǎn)程過程調(diào)用、springcloud通過 REST ?接口json調(diào)用等。
異步:消息隊(duì)列,如:RabbitMq
、ActiveM
、Kafka
等消息隊(duì)列。
5、 什么是服務(wù)熔斷?什么是服務(wù)降級?
熔斷機(jī)制是應(yīng)對雪崩效應(yīng)的一種微服務(wù)鏈路保護(hù)機(jī)制。當(dāng)某個(gè)微服務(wù)不可用或者響應(yīng)時(shí)間太長時(shí),會(huì)進(jìn)行服務(wù)降級,進(jìn)而熔斷該節(jié)點(diǎn)微服務(wù)的調(diào)用,快速返回“錯(cuò)誤”的響應(yīng)信息。當(dāng)檢測到該節(jié)點(diǎn)微服務(wù)調(diào)用響應(yīng)正常后恢復(fù)調(diào)用鏈路。在Spring Cloud框架里熔斷機(jī)制通過Hystrix實(shí)現(xiàn),Hystrix會(huì)監(jiān)控微服務(wù)間調(diào)用的狀況,當(dāng)失敗的調(diào)用到一定閾值,缺省是5秒內(nèi)調(diào)用20次,如果失敗,就會(huì)啟動(dòng)熔斷機(jī)制。
服務(wù)降級,一般是從整體負(fù)荷考慮。就是當(dāng)某個(gè)服務(wù)熔斷之后,服務(wù)器將不再被調(diào)用,此時(shí)客戶端可以自己準(zhǔn)備一個(gè)本地的fallback回調(diào),返回一個(gè)缺省值。這樣做,雖然水平下降,但好歹可用,比直接掛掉強(qiáng)。
Hystrix
相關(guān)注解@EnableHystrix
:開啟熔斷 @HystrixCommand(fallbackMethod=”XXX”)
,聲明一個(gè)失敗回滾處理函數(shù)XXX
,當(dāng)被注解的方法執(zhí)行超時(shí)(默認(rèn)是1000毫秒),就會(huì)執(zhí)行fallback
函數(shù),返回錯(cuò)誤提示。
6、 請說說Eureka和zookeeper 的區(qū)別?
Zookeeper保證了CP,Eureka保證了AP。
A:高可用
C:一致性
P:分區(qū)容錯(cuò)性
1.當(dāng)向注冊中心查詢服務(wù)列表時(shí),我們可以容忍注冊中心返回的是幾分鐘以前的信息,但不能容忍直接down掉不可用。也就是說,服務(wù)注冊功能對高可用性要求比較高,但zk會(huì)出現(xiàn)這樣一種情況,當(dāng)master節(jié)點(diǎn)因?yàn)榫W(wǎng)絡(luò)故障與其他節(jié)點(diǎn)失去聯(lián)系時(shí),剩余節(jié)點(diǎn)會(huì)重新選leader。問題在于,選取leader時(shí)間過長,30 ~ 120s,且選取期間zk集群都不可用,這樣就會(huì)導(dǎo)致選取期間注冊服務(wù)癱瘓。在云部署的環(huán)境下,因網(wǎng)絡(luò)問題使得zk集群失去master節(jié)點(diǎn)是較大概率會(huì)發(fā)生的事,雖然服務(wù)能夠恢復(fù),但是漫長的選取時(shí)間導(dǎo)致的注冊長期不可用是不能容忍的。
2.Eureka保證了可用性,Eureka各個(gè)節(jié)點(diǎn)是平等的,幾個(gè)節(jié)點(diǎn)掛掉不會(huì)影響正常節(jié)點(diǎn)的工作,剩余的節(jié)點(diǎn)仍然可以提供注冊和查詢服務(wù)。而Eureka的客戶端向某個(gè)Eureka注冊或發(fā)現(xiàn)時(shí)發(fā)生連接失敗,則會(huì)自動(dòng)切換到其他節(jié)點(diǎn),只要有一臺Eureka還在,就能保證注冊服務(wù)可用,只是查到的信息可能不是最新的。除此之外,Eureka還有自我保護(hù)機(jī)制,如果在15分鐘內(nèi)超過85%的節(jié)點(diǎn)沒有正常的心跳,那么Eureka就認(rèn)為客戶端與注冊中心發(fā)生了網(wǎng)絡(luò)故障,此時(shí)會(huì)出現(xiàn)以下幾種情況:
①、Eureka不在從注冊列表中移除因?yàn)殚L時(shí)間沒有收到心跳而應(yīng)該過期的服務(wù)。
②、Eureka仍然能夠接受新服務(wù)的注冊和查詢請求,但是不會(huì)被同步到其他節(jié)點(diǎn)上(即保證當(dāng)前節(jié)點(diǎn)仍然可用)
③、當(dāng)網(wǎng)絡(luò)穩(wěn)定時(shí),當(dāng)前實(shí)例新的注冊信息會(huì)被同步到其他節(jié)點(diǎn)。
因此,Eureka可以很好的應(yīng)對因網(wǎng)絡(luò)故障導(dǎo)致部分節(jié)點(diǎn)失去聯(lián)系的情況,而不會(huì)像Zookeeper那樣使整個(gè)微服務(wù)癱瘓
7、SpringBoot和SpringCloud的區(qū)別?
SpringBoot專注于快速方便的開發(fā)單個(gè)個(gè)體微服務(wù)。
SpringCloud是關(guān)注全局的微服務(wù)協(xié)調(diào)整理治理框架,它將SpringBoot開發(fā)的一個(gè)個(gè)單體微服務(wù)整合并管理起來,
為各個(gè)微服務(wù)之間提供,配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會(huì)話等等集成服務(wù)
SpringBoot可以離開SpringCloud獨(dú)立使用開發(fā)項(xiàng)目, 但是SpringCloud離不開SpringBoot ,屬于依賴的關(guān)系.
SpringBoot專注于快速、方便的開發(fā)單個(gè)微服務(wù)個(gè)體,SpringCloud關(guān)注全局的服務(wù)治理框架。
8、負(fù)載平衡的意義什么?
在計(jì)算中,負(fù)載平衡可以改善跨計(jì)算機(jī),計(jì)算機(jī)集群,網(wǎng)絡(luò)鏈接,中央處理單元或磁盤驅(qū)動(dòng)器等多種計(jì)算資源的工作負(fù)載分布。負(fù)載平衡旨在優(yōu)化資源使用,最大化吞吐量,最小化響應(yīng)時(shí)間并避免任何單一資源 的過載。使用多個(gè)組件進(jìn)行負(fù)載平衡而不是單個(gè)組件可能會(huì)通過冗余來提高可靠性和可用性。負(fù)載平衡通常涉及專用軟件或硬件,例如多層交換機(jī)或域名系統(tǒng)服務(wù)器進(jìn)程。
9、什么是Hystrix?它如何實(shí)現(xiàn)容錯(cuò)?
Hystrix是一個(gè)延遲和容錯(cuò)庫,旨在隔離遠(yuǎn)程系統(tǒng),服務(wù)和第三方庫的訪問點(diǎn),當(dāng)出現(xiàn)故障是不可避免的故障時(shí),停止級聯(lián)故障并在復(fù)雜的分布式系統(tǒng)中實(shí)現(xiàn)彈性。
通常對于使用微服務(wù)架構(gòu)開發(fā)的系統(tǒng),涉及到許多微服務(wù)。這些微服務(wù)彼此協(xié)作。
思考以下微服務(wù)

假設(shè)如果上圖中的微服務(wù)9失敗了,那么使用傳統(tǒng)方法我們將傳播一個(gè)異常。但這仍然會(huì)導(dǎo)致整個(gè)系統(tǒng)崩潰。
隨著微服務(wù)數(shù)量的增加,這個(gè)問題變得更加復(fù)雜。微服務(wù)的數(shù)量可以高達(dá)1000.這是hystrix出現(xiàn)的地方 我們將使用Hystrix在這種情況下的Fallback方法功能。我們有兩個(gè)服務(wù)employee-consumer使用由employee-consumer公開的服務(wù)。
簡化圖如下所示

現(xiàn)在假設(shè)由于某種原因,employee-producer公開的服務(wù)會(huì)拋出異常。我們在這種情況下使用Hystrix定義了一個(gè)回退方法。這種后備方法應(yīng)該具有與公開服務(wù)相同的返回類型。如果暴露服務(wù)中出現(xiàn)異常,則回退方法將返回一些值。
10、什么是Hystrix斷路器?我們需要它嗎?
由于某些原因,employee-consumer公開服務(wù)會(huì)引發(fā)異常。在這種情況下使用Hystrix我們定義了一個(gè)回退方法。如果在公開服務(wù)中發(fā)生異常,則回退方法返回一些默認(rèn)值。
如果firstPage method() 中的異常繼續(xù)發(fā)生,則Hystrix電路將中斷,并且員工使用者將一起跳過firtsPage方法,并直接調(diào)用回退方法。斷路器的目的是給第一頁方法或第一頁方法可能調(diào)用的其他方法留出時(shí)間,并導(dǎo)致異?;謴?fù)??赡馨l(fā)生的情況是,在負(fù)載較小的情況下,導(dǎo)致異常的問題有更好的恢復(fù)機(jī)會(huì) 。
11、說說 RPC 的實(shí)現(xiàn)原理
首先需要有處理網(wǎng)絡(luò)連接通訊的模塊,負(fù)責(zé)連接建立、管理和消息的傳輸。其次需要有編 解碼的模塊,因?yàn)榫W(wǎng)絡(luò)通訊都是傳輸?shù)淖止?jié)碼,需要將我們使用的對象序列化和反序列 化。剩下的就是客戶端和服務(wù)器端的部分,服務(wù)器端暴露要開放的服務(wù)接口,客戶調(diào)用服 務(wù)接口的一個(gè)代理實(shí)現(xiàn),這個(gè)代理實(shí)現(xiàn)負(fù)責(zé)收集數(shù)據(jù)、編碼并傳輸給服務(wù)器然后等待結(jié)果 返回。
12,eureka自我保護(hù)機(jī)制是什么?
當(dāng)Eureka Server 節(jié)點(diǎn)在短時(shí)間內(nèi)丟失了過多實(shí)例的連接時(shí)(比如網(wǎng)絡(luò)故障或頻繁啟動(dòng)關(guān)閉客戶端)節(jié)點(diǎn)會(huì)進(jìn)入自我保護(hù)模式,保護(hù)注冊信息,不再刪除注冊數(shù)據(jù),故障恢復(fù)時(shí),自動(dòng)退出自我保護(hù)模式。
13,什么是Ribbon?
ribbon是一個(gè)負(fù)載均衡客戶端,可以很好的控制htt和tcp的一些行為。feign默認(rèn)集成了ribbon
。feign默認(rèn)集成了ribbon
。
14,什么是 Netflix Feign?它的優(yōu)點(diǎn)是什么?
Feign 是受到 Retrofit,JAXRS-2.0 和 WebSocket 啟發(fā)的 java 客戶端聯(lián)編程序。
Feign 的第一個(gè)目標(biāo)是將約束分母的復(fù)雜性統(tǒng)一到 http apis,而不考慮其穩(wěn)定性。
特點(diǎn):
Feign 采用的是基于接口的注解 Feign 整合了ribbon,具有負(fù)載均衡的能力 整合了Hystrix,具有熔斷的能力
使用方式
添加pom依賴。 啟動(dòng)類添加 @EnableFeignClients
定義一個(gè)接口 @FeignClient(name=“xxx”)
Feign 的第一個(gè)目標(biāo)是將約束分母的復(fù)雜性統(tǒng)一到 http apis,而不考慮其穩(wěn)定性。特點(diǎn):??
Feign 采用的是基于接口的注解???? Feign 整合了ribbon,具有負(fù)載均衡的能力???? 整合了Hystrix,具有熔斷的能力????????使用方式?? 添加pom依賴。???? 啟動(dòng)類添加 @EnableFeignClients
????定義一個(gè)接口 @FeignClient(name=“xxx”)
指定調(diào)用哪個(gè)服務(wù)????????????15, Ribbon和Feign的區(qū)別?????????1.Ribbon都是調(diào)用其他服務(wù)的,但方式不同。2.啟動(dòng)類注解不同,Ribbon是@RibbonClient feign的是@EnableFeignClients 3.服務(wù)指定的位置不同,Ribbon是在@RibbonClient注解上聲明,F(xiàn)eign則是在定義抽象方法的接口中使用@FeignClient聲明。4.調(diào)用方式不同,Ribbon需要自己構(gòu)建http請求,模擬http請求。??16、Spring Cloud 的核心組件有哪些?
Eureka:服務(wù)注冊于發(fā)現(xiàn)。 Feign:基于動(dòng)態(tài)代理機(jī)制,根據(jù)注解和選擇的機(jī)器,拼接請求 url 地址,發(fā)起請求。 Ribbon:實(shí)現(xiàn)負(fù)載均衡,從一個(gè)服務(wù)的多臺機(jī)器中選擇一臺。 Hystrix:提供線程池,不同的服務(wù)走不同的線程池,實(shí)現(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的解決方案,旨在快速搭建單個(gè)微服務(wù) 而Spring Cloud專注于解決各個(gè)微服務(wù)之間的協(xié)調(diào)與配置,服務(wù)之間的通信,熔斷,負(fù)載均衡等 技術(shù)維度并相同,并且Spring Cloud是依賴于Spring Boot的,而Spring Boot并不是依賴與Spring Cloud,甚至還可以和Dubbo進(jìn)行優(yōu)秀的整合開發(fā)
總結(jié)
SpringBoot專注于快速方便的開發(fā)單個(gè)個(gè)體的微服務(wù) SpringCloud是關(guān)注全局的微服務(wù)協(xié)調(diào)整理治理框架,整合并管理各個(gè)微服務(wù),為各個(gè)微服務(wù)之間提供,配置管理,服務(wù)發(fā)現(xiàn),斷路器,路由,事件總線等集成服務(wù) Spring Boot不依賴于Spring Cloud,Spring Cloud依賴于Spring Boot,屬于依賴關(guān)系 Spring Boot專注于快速,方便的開發(fā)單個(gè)的微服務(wù)個(gè)體,Spring Cloud關(guān)注全局的服務(wù)治理框架
18、說說微服務(wù)之間是如何獨(dú)立通訊的?
遠(yuǎn)程過程調(diào)用(Remote Procedure Invocation)
也就是我們常說的服務(wù)的注冊與發(fā)現(xiàn),直接通過遠(yuǎn)程過程調(diào)用來訪問別的service。
優(yōu)點(diǎn):簡單,常見,因?yàn)闆]有中間件代理,系統(tǒng)更簡單
缺點(diǎn):只支持請求/響應(yīng)的模式,不支持別的,比如通知、請求/異步響應(yīng)、發(fā)布/訂閱、發(fā)布/異步響應(yīng),降低了可用性,因?yàn)榭蛻舳撕头?wù)端在請求過程中必須都是可用的。
消息
使用異步消息來做服務(wù)間通信。服務(wù)間通過消息管道來交換消息,從而通信。
優(yōu)點(diǎn):把客戶端和服務(wù)端解耦,更松耦合,提高可用性,因?yàn)橄⒅虚g件緩存了消息,直到消費(fèi)者可以消費(fèi), ? ? ? 支持很多通信機(jī)制比如通知、請求/異步響應(yīng)、發(fā)布/訂閱、發(fā)布/異步響應(yīng)。
缺點(diǎn):消息中間件有額外的復(fù)雜。
19、Spring Cloud如何實(shí)現(xiàn)服務(wù)的注冊?
服務(wù)發(fā)布時(shí),指定對應(yīng)的服務(wù)名,將服務(wù)注冊到 注冊中心(
Eureka 、Zookeeper)
。Eureka 、Zookeeper)
。注冊中心加
注冊中心加@EnableEurekaServer
,服務(wù)用@EnableDiscoveryClient
@EnableEurekaServer
,服務(wù)用@EnableDiscoveryClient
,然后用ribbon或feign進(jìn)行服務(wù)直接的調(diào)用發(fā)現(xiàn)。此題偏向于向?qū)崙?zhàn),就看你是不是背面試題的,沒有實(shí)戰(zhàn)的人是不知道的。21、了解Eureka自我保護(hù)機(jī)制嗎?
當(dāng)Eureka Server 節(jié)點(diǎn)在短時(shí)間內(nèi)丟失了過多實(shí)例的連接時(shí)(比如網(wǎng)絡(luò)故障或頻繁啟動(dòng)關(guān)閉客戶端)節(jié)點(diǎn)會(huì)進(jìn)入自我保護(hù)模式,保護(hù)注冊信息,不再刪除注冊數(shù)據(jù),故障恢復(fù)時(shí),自動(dòng)退出自我保護(hù)模式。
22、熟悉 Spring Cloud Bus 嗎?
spring cloud bus 將分布式的節(jié)點(diǎn)用輕量的消息代理連接起來,它可以用于廣播配置文件的更改或者服務(wù)直接的通訊,也可用于監(jiān)控。如果修改了配置文件,發(fā)送一次請求,所有的客戶端便會(huì)重新讀取配置文件。
23、Spring Cloud 斷路器有什么作用?
當(dāng)一個(gè)服務(wù)調(diào)用另一個(gè)服務(wù)由于網(wǎng)絡(luò)原因或自身原因出現(xiàn)問題,調(diào)用者就會(huì)等待被調(diào)用者的響應(yīng),當(dāng)更多的服務(wù)請求到這些資源導(dǎo)致更多的請求等待,發(fā)生連鎖效應(yīng)(雪崩效應(yīng))。一段時(shí)間內(nèi) 達(dá)到一定的次數(shù)無法調(diào)用 并且多次監(jiān)測沒有恢復(fù)的跡象,這時(shí)候斷路器完全打開 那么下次請求就不會(huì)請求到該服務(wù)。
半開:短時(shí)間內(nèi) 有恢復(fù)跡象 斷路器會(huì)將部分請求發(fā)給該服務(wù),正常調(diào)用時(shí) 斷路器關(guān)閉。關(guān)閉:當(dāng)服務(wù)一直處于正常狀態(tài) 能正常調(diào)用。
24、了解Spring Cloud Config 嗎?
在分布式系統(tǒng)中,由于服務(wù)數(shù)量巨多,為了方便服務(wù)配置文件統(tǒng)一管理,實(shí)時(shí)更新,所以需要分布式配置中心組件。在Spring Cloud中,有分布式配置中心組件
Spring Cloud Config
,它支持配置服務(wù)放在配置服務(wù)的內(nèi)存中(即本地),也支持放在遠(yuǎn)程Git倉庫中。Spring Cloud Config
,它支持配置服務(wù)放在配置服務(wù)的內(nèi)存中(即本地),也支持放在遠(yuǎn)程Git倉庫中。在
在Spring Cloud Config
Spring Cloud Config
組件中,分兩個(gè)角色,一是config server,二是config client。使用方式:??添加pom依賴 配置文件添加相關(guān)配置 啟動(dòng)類添加注解@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)限校驗(yàn)、限流控制等作用。
使用了一個(gè)RouteLocatorBuilder的bean去創(chuàng)建路由,除了創(chuàng)建路由RouteLocatorBuilder可以讓你添加各種predicates和filters,predicates斷言的意思,顧名思義就是根據(jù)具體的請求的規(guī)則,由具體的route去處理,filters是各種過濾器,用來對請求做各種判斷和修改。
參考;http://1pgqu.cn/M0NZo
總結(jié)
Spring Cloud目前相當(dāng)?shù)幕馃幔膊畈欢嗍莏ava開發(fā)者必備技能之一了。面試的時(shí)候被問,那也是正常不過了,很多人可能用來很久,但是沒有去了解過原理,面試照樣掛掉。背面試題,在很大層面上還是很有用的。但從長遠(yuǎn)角度來說,希望大家更深層次去學(xué)習(xí)、去實(shí)踐。只有自己真的掌握,那才叫NB。
以上是面試反饋 Spring Cloud 的25連環(huán)炮的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

Spring Cloud目前相當(dāng)?shù)幕馃幔膊畈欢嗍莏ava開發(fā)者必備技能之一了。面試的時(shí)候被問,那也是正常不過了,很多人可能用來很久,但是沒有去了解過原理,面試照樣掛掉。

SpringCloud和SpringBoot是目前Java領(lǐng)域中最熱門的開源框架,它們分別提供了一套完善的微服務(wù)架構(gòu)和快速構(gòu)建應(yīng)用程序的解決方案。本文將對它們的功能進(jìn)行比較,并給出選擇指南,以幫助讀者了解它們的優(yōu)勢和適用場景。SpringBoot是一個(gè)用于開發(fā)Java應(yīng)用程序的框架,它提供了一個(gè)簡化的開發(fā)流程,集成了大量常用的功能和組件,減少了開發(fā)者的工作量

springcloud五大核心組件是:1、Eureka,實(shí)現(xiàn)服務(wù)治理;2、Ribbon,提供客戶側(cè)的軟件負(fù)載均衡算法;3、Hystrix斷路器,防止一個(gè)應(yīng)用程序多次試圖執(zhí)行一個(gè)操作;4、Zuul,具有api網(wǎng)關(guān),路由,負(fù)載均衡等多種作用;5、Config,進(jìn)行配置管理。

SpringBootStarter是什么?SpringBootStarter是在SpringBoot組件中被提出來的一種概念、簡化了很多煩瑣的配置、通過引入各種SpringBootStarter包可以快速搭建出一個(gè)項(xiàng)目的腳手架。比如我們經(jīng)常用的一些:spring-boot-starter-web:spring-boot-starter-data-redis:spring-boot-starter-data-mongodb:spring-boot-starter-data-jpa:spring-b

近年來,隨著云計(jì)算和分布式架構(gòu)的興起,微服務(wù)架構(gòu)的應(yīng)用越來越廣泛。而SpringCloud和SpringBoot作為Java開發(fā)中的兩個(gè)重要框架,對于微服務(wù)的實(shí)現(xiàn)起到了重要的作用。然而,很多人對于它們在微服務(wù)領(lǐng)域的不同應(yīng)用方式還存在一定的疑惑。本文將從不同的角度探索SpringCloud和SpringBoot在微服務(wù)中的應(yīng)用方式。首先,我們來了解一下Spri

場景描述在項(xiàng)目開發(fā)的過程中,需要修改調(diào)試的時(shí)候偶每次都需要重啟項(xiàng)目浪費(fèi)時(shí)間,下面是我整理的兩種常用的兩種方式方式一修改啟動(dòng)配置方式(主要針對debug模式下)點(diǎn)擊啟動(dòng)配置=》editconfigrations…configration下面修改Updateclassesandresourceson‘update‘action:當(dāng)用戶主動(dòng)執(zhí)行更新的時(shí)候更新快捷鍵:Ctrl+F9onframedeactication:在編輯窗口失去焦點(diǎn)的時(shí)

springcloud和springboot的區(qū)別:1、作用;2、使用方式;3、創(chuàng)作初衷;4、目的;5、集成性;6、擴(kuò)展性;7、復(fù)雜性;8、社區(qū)支持;9、安全性;10、部署和運(yùn)維。詳細(xì)介紹:1、作用,Spring Boot主要的作用是為微服務(wù)開發(fā)提供一種快速的方式,簡化配置文件,提高工作效率,而Spring Cloud則是一個(gè)綜合管理框架,用于給微服務(wù)提供一個(gè)綜合管理框架等等。

從架構(gòu)角度看SpringCloud與SpringBoot的差異引言:在當(dāng)今的互聯(lián)網(wǎng)時(shí)代,構(gòu)建分布式系統(tǒng)已經(jīng)成為了一種必要的需求。而SpringBoot和SpringCloud正是為了滿足這個(gè)需求而誕生的。盡管它們都是由Spring框架所提供的解決方案,但從架構(gòu)角度來看,它們存在著一些重要的差異。本文將從架構(gòu)的角度出發(fā),對SpringBoot和SpringCl
