<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          面試反饋:SpringCloud 的25連環(huán)炮

          共 8403字,需瀏覽 17分鐘

           ·

          2022-08-26 10:56

          ????關(guān)注后回復(fù) “進(jìn)群” ,拉你進(jìn)程序員交流群????


          前言

          上周,一位朋友在面試被問(wèn)到了Spring Cloud,然后結(jié)合他的反饋,今天我們繼續(xù)走起SpringCloud面試連環(huán)炮。

          Spring Cloud核心知識(shí)總結(jié)

          下面是一張Spring Cloud核心組件關(guān)系圖:


          從這張圖中,其實(shí)我們是可以獲取很多信息的,希望大家細(xì)細(xì)品嘗。

          話不多說(shuō),我們直接開(kāi)始 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)模式或者說(shuō)是一種架構(gòu)風(fēng)格,它提倡將單一應(yīng)用程序劃分為一組小的服務(wù),每個(gè)服務(wù)運(yùn)行在其獨(dú)立的自己的進(jìn)程中,服務(wù)之間相互協(xié)調(diào)、互相配合,為用戶提供最終價(jià)值。服務(wù)之間采用輕量級(jí)的通信機(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ī)制,對(duì)具體的一個(gè)服務(wù)而言,應(yīng)根據(jù)業(yè)務(wù)上下文,選擇合適的語(yǔ)言、工具對(duì)其進(jìn)行構(gòu)建,可以有一個(gè)非常輕量級(jí)的集中式管理來(lái)協(xié)調(diào)這些服務(wù),可以使用不同的語(yǔ)言來(lái)編寫(xiě)服務(wù),也可以使用不同的數(shù)據(jù)存儲(chǔ)。

          通俗地來(lái)講:

          微服務(wù)就是一個(gè)獨(dú)立的職責(zé)單一的服務(wù)應(yīng)用程序。在 intellij idea 工具里面就是用maven開(kāi)發(fā)的一個(gè)個(gè)獨(dú)立的module,具體就是使用springboot 開(kāi)發(fā)的一個(gè)小的模塊,處理單一專業(yè)的業(yè)務(wù)邏輯,一個(gè)模塊只做一個(gè)事情。

          微服務(wù)強(qiáng)調(diào)的是服務(wù)大小,關(guān)注的是某一個(gè)點(diǎn),具體解決某一個(gè)問(wèn)題/落地對(duì)應(yīng)的一個(gè)服務(wù)應(yīng)用,可以看做是idea 里面一個(gè) module。

          3、Spring Cloud有什么優(yōu)勢(shì)

          使用 Spring Boot 開(kāi)發(fā)分布式微服務(wù)時(shí),我們面臨以下問(wèn)題

          • 與分布式系統(tǒng)相關(guān)的復(fù)雜性-這種開(kāi)銷包括網(wǎng)絡(luò)問(wèn)題,延遲開(kāi)銷,帶寬問(wèn)題,安全問(wèn)題。
          • 服務(wù)發(fā)現(xiàn)-服務(wù)發(fā)現(xiàn)工具管理群集中的流程和服務(wù)如何查找和互相交談。它涉及一個(gè)服務(wù)目錄,在該目錄中注冊(cè)服務(wù),然后能夠查找并連接到該目錄中的服務(wù)。
          • 冗余-分布式系統(tǒng)中的冗余問(wèn)題。
          • 負(fù)載平衡 --負(fù)載平衡改善跨多個(gè)計(jì)算資源的工作負(fù)荷,諸如計(jì)算機(jī),計(jì)算機(jī)集群,網(wǎng)絡(luò)鏈路,中央處理單元,或磁盤(pán)驅(qū)動(dòng)器的分布。
          • 性能-問(wèn)題 由于各種運(yùn)營(yíng)開(kāi)銷導(dǎo)致的性能問(wèn)題。
          • 部署復(fù)雜性-Devops 技能的要求。

          4、微服務(wù)之間如何獨(dú)立通訊的?

          同步通信:dobbo通過(guò) RPC 遠(yuǎn)程過(guò)程調(diào)用、springcloud通過(guò) REST  接口json調(diào)用等。

          異步:消息隊(duì)列,如:RabbitMq、ActiveM、Kafka等消息隊(duì)列。

          5、 什么是服務(wù)熔斷?什么是服務(wù)降級(jí)?

          熔斷機(jī)制是應(yīng)對(duì)雪崩效應(yīng)的一種微服務(wù)鏈路保護(hù)機(jī)制。當(dāng)某個(gè)微服務(wù)不可用或者響應(yīng)時(shí)間太長(zhǎng)時(shí),會(huì)進(jìn)行服務(wù)降級(jí),進(jìn)而熔斷該節(jié)點(diǎn)微服務(wù)的調(diào)用,快速返回“錯(cuò)誤”的響應(yīng)信息。當(dāng)檢測(cè)到該節(jié)點(diǎn)微服務(wù)調(diào)用響應(yīng)正常后恢復(fù)調(diào)用鏈路。在Spring Cloud框架里熔斷機(jī)制通過(guò)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ù)降級(jí),一般是從整體負(fù)荷考慮。就是當(dāng)某個(gè)服務(wù)熔斷之后,服務(wù)器將不再被調(diào)用,此時(shí)客戶端可以自己準(zhǔn)備一個(gè)本地的fallback回調(diào),返回一個(gè)缺省值。這樣做,雖然水平下降,但好歹可用,比直接掛掉強(qiáng)。

          Hystrix相關(guān)注解@EnableHystrix:開(kāi)啟熔斷 @HystrixCommand(fallbackMethod=”XXX”),聲明一個(gè)失敗回滾處理函數(shù)XXX,當(dāng)被注解的方法執(zhí)行超時(shí)(默認(rèn)是1000毫秒),就會(huì)執(zhí)行fallback函數(shù),返回錯(cuò)誤提示。

          6、 請(qǐng)說(shuō)說(shuō)Eureka和zookeeper 的區(qū)別?

          Zookeeper保證了CP,Eureka保證了AP。

          A:高可用

          C:一致性

          P:分區(qū)容錯(cuò)性

          1.當(dāng)向注冊(cè)中心查詢服務(wù)列表時(shí),我們可以容忍注冊(cè)中心返回的是幾分鐘以前的信息,但不能容忍直接down掉不可用。也就是說(shuō),服務(wù)注冊(cè)功能對(duì)高可用性要求比較高,但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。問(wèn)題在于,選取leader時(shí)間過(guò)長(zhǎng),30 ~ 120s,且選取期間zk集群都不可用,這樣就會(huì)導(dǎo)致選取期間注冊(cè)服務(wù)癱瘓。在云部署的環(huán)境下,因網(wǎng)絡(luò)問(wèn)題使得zk集群失去master節(jié)點(diǎn)是較大概率會(huì)發(fā)生的事,雖然服務(wù)能夠恢復(fù),但是漫長(zhǎng)的選取時(shí)間導(dǎo)致的注冊(cè)長(zhǎng)期不可用是不能容忍的。

          2.Eureka保證了可用性,Eureka各個(gè)節(jié)點(diǎn)是平等的,幾個(gè)節(jié)點(diǎn)掛掉不會(huì)影響正常節(jié)點(diǎn)的工作,剩余的節(jié)點(diǎn)仍然可以提供注冊(cè)和查詢服務(wù)。而Eureka的客戶端向某個(gè)Eureka注冊(cè)或發(fā)現(xiàn)時(shí)發(fā)生連接失敗,則會(huì)自動(dòng)切換到其他節(jié)點(diǎn),只要有一臺(tái)Eureka還在,就能保證注冊(cè)服務(wù)可用,只是查到的信息可能不是最新的。除此之外,Eureka還有自我保護(hù)機(jī)制,如果在15分鐘內(nèi)超過(guò)85%的節(jié)點(diǎn)沒(méi)有正常的心跳,那么Eureka就認(rèn)為客戶端與注冊(cè)中心發(fā)生了網(wǎng)絡(luò)故障,此時(shí)會(huì)出現(xiàn)以下幾種情況:

          ①、Eureka不在從注冊(cè)列表中移除因?yàn)殚L(zhǎng)時(shí)間沒(méi)有收到心跳而應(yīng)該過(guò)期的服務(wù)。

          ②、Eureka仍然能夠接受新服務(wù)的注冊(cè)和查詢請(qǐng)求,但是不會(huì)被同步到其他節(jié)點(diǎn)上(即保證當(dāng)前節(jié)點(diǎn)仍然可用)

          ③、當(dāng)網(wǎng)絡(luò)穩(wěn)定時(shí),當(dāng)前實(shí)例新的注冊(cè)信息會(huì)被同步到其他節(jié)點(diǎn)。

          因此,Eureka可以很好地應(yīng)對(duì)因網(wǎng)絡(luò)故障導(dǎo)致部分節(jié)點(diǎn)失去聯(lián)系的情況,而不會(huì)像Zookeeper那樣使整個(gè)微服務(wù)癱瘓

          7、SpringBoot和SpringCloud的區(qū)別?

          SpringBoot專注于快速方便得開(kāi)發(fā)單個(gè)個(gè)體微服務(wù)。

          SpringCloud是關(guān)注全局的微服務(wù)協(xié)調(diào)整理治理框架,它將SpringBoot開(kāi)發(fā)的一個(gè)個(gè)單體微服務(wù)整合并管理起來(lái),

          為各個(gè)微服務(wù)之間提供,配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、事件總線、全局鎖、決策競(jìng)選、分布式會(huì)話等等集成服務(wù)

          SpringBoot可以離開(kāi)SpringCloud獨(dú)立使用開(kāi)發(fā)項(xiàng)目, 但是SpringCloud離不開(kāi)SpringBoot ,屬于依賴的關(guān)系.

          SpringBoot專注于快速、方便得開(kāi)發(fā)單個(gè)微服務(wù)個(gè)體,SpringCloud關(guān)注全局的服務(wù)治理框架。

          8、負(fù)載平衡的意義什么?

          在計(jì)算中,負(fù)載平衡可以改善跨計(jì)算機(jī),計(jì)算機(jī)集群,網(wǎng)絡(luò)鏈接,中央處理單元或磁盤(pán)驅(qū)動(dòng)器等多種計(jì)算資源的工作負(fù)載分布。負(fù)載平衡旨在優(yōu)化資源使用,最大化吞吐量,最小化響應(yīng)時(shí)間并避免任何單一資源 的過(guò)載。使用多個(gè)組件進(jìn)行負(fù)載平衡而不是單個(gè)組件可能會(huì)通過(guò)冗余來(lái)提高可靠性和可用性。負(fù)載平衡通常涉及專用軟件或硬件,例如多層交換機(jī)或域名系統(tǒng)服務(wù)器進(jìn)程。

          9、什么是Hystrix?它如何實(shí)現(xiàn)容錯(cuò)?

          Hystrix是一個(gè)延遲和容錯(cuò)庫(kù),旨在隔離遠(yuǎn)程系統(tǒng),服務(wù)和第三方庫(kù)的訪問(wèn)點(diǎn),當(dāng)出現(xiàn)故障是不可避免的故障時(shí),停止級(jí)聯(lián)故障并在復(fù)雜的分布式系統(tǒng)中實(shí)現(xiàn)彈性。

          通常對(duì)于使用微服務(wù)架構(gòu)開(kāi)發(fā)的系統(tǒng),涉及到許多微服務(wù)。這些微服務(wù)彼此協(xié)作。

          思考一下微服務(wù):

          假設(shè)如果上圖中的微服務(wù)9失敗了,那么使用傳統(tǒng)方法我們將傳播一個(gè)異常。但這仍然會(huì)導(dǎo)致整個(gè)系統(tǒng)崩潰。

          隨著微服務(wù)數(shù)量的增加,這個(gè)問(wèn)題變得更加復(fù)雜。微服務(wù)的數(shù)量可以高達(dá)1000.這是hystrix出現(xiàn)的地方 我們將使用Hystrix在這種情況下的Fallback方法功能。我們有兩個(gè)服務(wù)employee-consumer使用由employee-consumer公開(kāi)的服務(wù)。

          簡(jiǎn)化圖如下所示

          現(xiàn)在假設(shè)由于某種原因,employee-producer公開(kāi)的服務(wù)會(huì)拋出異常。我們?cè)谶@種情況下使用Hystrix定義了一個(gè)回退方法。這種后備方法應(yīng)該具有與公開(kāi)服務(wù)相同的返回類型。如果暴露服務(wù)中出現(xiàn)異常,則回退方法將返回一些值。

          10、什么是Hystrix斷路器?我們需要它嗎?

          由于某些原因,employee-consumer公開(kāi)服務(wù)會(huì)引發(fā)異常。在這種情況下使用Hystrix我們定義了一個(gè)回退方法。如果在公開(kāi)服務(wù)中發(fā)生異常,則回退方法返回一些默認(rèn)值。


          如果firstPage method() 中的異常繼續(xù)發(fā)生,則Hystrix電路將中斷,并且員工使用者將一起跳過(guò)firtsPage方法,并直接調(diào)用回退方法。斷路器的目的是給第一頁(yè)方法或第一頁(yè)方法可能調(diào)用的其他方法留出時(shí)間,并導(dǎo)致異?;謴?fù)??赡馨l(fā)生的情況是,在負(fù)載較小的情況下,導(dǎo)致異常的問(wèn)題有更好的恢復(fù)機(jī)會(huì) 。


          11、說(shuō)說(shuō) RPC 的實(shí)現(xiàn)原理

          首先需要有處理網(wǎng)絡(luò)連接通訊的模塊,負(fù)責(zé)連接建立、管理和消息的傳輸。其次需要有編 解碼的模塊,因?yàn)榫W(wǎng)絡(luò)通訊都是傳輸?shù)淖止?jié)碼,需要將我們使用的對(duì)象序列化和反序列 化。剩下的就是客戶端和服務(wù)器端的部分,服務(wù)器端暴露要開(kāi)放的服務(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)丟失了過(guò)多實(shí)例的連接時(shí)(比如網(wǎng)絡(luò)故障或頻繁啟動(dòng)關(guān)閉客戶端)節(jié)點(diǎn)會(huì)進(jìn)入自我保護(hù)模式,保護(hù)注冊(cè)信息,不再刪除注冊(cè)數(shù)據(jù),故障恢復(fù)時(shí),自動(dòng)退出自我保護(hù)模式。

          13,什么是Ribbon?

          ribbon是一個(gè)負(fù)載均衡客戶端,可以很好地控制htt和tcp的一些行為。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”)指定調(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請(qǐng)求,模擬http請(qǐng)求。

          16、Spring Cloud 的核心組件有哪些?

          • Eureka:服務(wù)注冊(cè)于發(fā)現(xiàn)。
          • Feign:基于動(dòng)態(tài)代理機(jī)制,根據(jù)注解和選擇的機(jī)器,拼接請(qǐng)求 url 地址,發(fā)起請(qǐng)求。
          • Ribbon:實(shí)現(xiàn)負(fù)載均衡,從一個(gè)服務(wù)的多臺(tái)機(jī)器中選擇一臺(tái)。
          • Hystrix:提供線程池,不同的服務(wù)走不同的線程池,實(shí)現(xiàn)了不同服務(wù)調(diào)用的隔離,避免了服務(wù)雪崩的問(wèn)題。
          • Zuul:網(wǎng)關(guān)管理,由 Zuul 網(wǎng)關(guān)轉(zhuǎn)發(fā)請(qǐng)求給對(duì)應(yīng)的服務(wù)。

          17、說(shuō)說(shuō)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)秀的整合開(kāi)發(fā)

          總結(jié)

          • SpringBoot專注于快速方便的開(kāi)發(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專注于快速,方便的開(kāi)發(fā)單個(gè)的微服務(wù)個(gè)體,Spring Cloud關(guān)注全局的服務(wù)治理框架

          18、說(shuō)說(shuō)微服務(wù)之間是如何獨(dú)立通訊的?

          遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Invocation)

          也就是我們常說(shuō)的服務(wù)的注冊(cè)與發(fā)現(xiàn),直接通過(guò)遠(yuǎn)程過(guò)程調(diào)用來(lái)訪問(wèn)別的service。

          優(yōu)點(diǎn):簡(jiǎn)單,常見(jiàn),因?yàn)闆](méi)有中間件代理,系統(tǒng)更簡(jiǎn)單

          缺點(diǎn):只支持請(qǐng)求/響應(yīng)的模式,不支持別的,比如通知、請(qǐng)求/異步響應(yīng)、發(fā)布/訂閱、發(fā)布/異步響應(yīng),降低了可用性,因?yàn)榭蛻舳撕头?wù)端在請(qǐng)求過(guò)程中必須都是可用的。

          消息

          使用異步消息來(lái)做服務(wù)間通信。服務(wù)間通過(guò)消息管道來(lái)交換消息,從而通信。

          優(yōu)點(diǎn):把客戶端和服務(wù)端解耦,更松耦合,提高可用性,因?yàn)橄⒅虚g件緩存了消息,直到消費(fèi)者可以消費(fèi),       支持很多通信機(jī)制比如通知、請(qǐng)求/異步響應(yīng)、發(fā)布/訂閱、發(fā)布/異步響應(yīng)。

          缺點(diǎn):消息中間件有額外的復(fù)雜。

          19、Spring Cloud如何實(shí)現(xiàn)服務(wù)的注冊(cè)?

          服務(wù)發(fā)布時(shí),指定對(duì)應(yīng)的服務(wù)名,將服務(wù)注冊(cè)到 注冊(cè)中心(Eureka 、Zookeeper)。

          注冊(cè)中心加@EnableEurekaServer,服務(wù)用@EnableDiscoveryClient,然后用ribbon或feign進(jìn)行服務(wù)直接的調(diào)用發(fā)現(xiàn)。

          此題偏向于向?qū)崙?zhàn),就看你是不是背面試題的,沒(méi)有實(shí)戰(zhàn)的人是不知道的。

          20、什么是服務(wù)熔斷?

          在復(fù)雜的分布式系統(tǒng)中,微服務(wù)之間的相互調(diào)用,有可能出現(xiàn)各種各樣的原因?qū)е路?wù)的阻塞,在高并發(fā)場(chǎng)景下,服務(wù)的阻塞意味著線程的阻塞,導(dǎo)致當(dāng)前線程不可用,服務(wù)器的線程全部阻塞,導(dǎo)致服務(wù)器崩潰,由于服務(wù)之間的調(diào)用關(guān)系是同步的,會(huì)對(duì)整個(gè)微服務(wù)系統(tǒng)造成服務(wù)雪崩

          為了解決某個(gè)微服務(wù)的調(diào)用響應(yīng)時(shí)間過(guò)長(zhǎng)或者不可用進(jìn)而占用越來(lái)越多的系統(tǒng)資源引起雪崩效應(yīng)就需要進(jìn)行服務(wù)熔斷和服務(wù)降級(jí)處理。

          所謂的服務(wù)熔斷指的是某個(gè)服務(wù)故障或異常一起類似顯示世界中的“保險(xiǎn)絲"當(dāng)某個(gè)異常條件被觸發(fā)就直接熔斷整個(gè)服務(wù),而不是一直等到此服務(wù)超時(shí)。

          服務(wù)熔斷就是相當(dāng)于我們電閘的保險(xiǎn)絲,一旦發(fā)生服務(wù)雪崩的,就會(huì)熔斷整個(gè)服務(wù),通過(guò)維護(hù)一個(gè)自己的線程池,當(dāng)線程達(dá)到閾值的時(shí)候就啟動(dòng)服務(wù)降級(jí),如果其他請(qǐng)求繼續(xù)訪問(wèn)就直接返回fallback的默認(rèn)值

          21、了解Eureka自我保護(hù)機(jī)制嗎?

          當(dāng)Eureka Server 節(jié)點(diǎn)在短時(shí)間內(nèi)丟失了過(guò)多實(shí)例的連接時(shí)(比如網(wǎng)絡(luò)故障或頻繁啟動(dòng)關(guān)閉客戶端)節(jié)點(diǎn)會(huì)進(jìn)入自我保護(hù)模式,保護(hù)注冊(cè)信息,不再刪除注冊(cè)數(shù)據(jù),故障恢復(fù)時(shí),自動(dòng)退出自我保護(hù)模式。

          22、熟悉 Spring Cloud Bus 嗎?

          spring cloud bus 將分布式的節(jié)點(diǎn)用輕量的消息代理連接起來(lái),它可以用于廣播配置文件的更改或者服務(wù)直接的通訊,也可用于監(jiān)控。如果修改了配置文件,發(fā)送一次請(qǐng)求,所有的客戶端便會(huì)重新讀取配置文件。

          23、Spring Cloud 斷路器有什么作用?

          當(dāng)一個(gè)服務(wù)調(diào)用另一個(gè)服務(wù)由于網(wǎng)絡(luò)原因或自身原因出現(xiàn)問(wèn)題,調(diào)用者就會(huì)等待被調(diào)用者的響應(yīng),當(dāng)更多的服務(wù)請(qǐng)求到這些資源導(dǎo)致更多的請(qǐng)求等待,發(fā)生連鎖效應(yīng)(雪崩效應(yīng))。一段時(shí)間內(nèi) 達(dá)到一定的次數(shù)無(wú)法調(diào)用 并且多次監(jiān)測(cè)沒(méi)有恢復(fù)的跡象,這時(shí)候斷路器完全打開(kāi) 那么下次請(qǐng)求就不會(huì)請(qǐng)求到該服務(wù)。

          半開(kāi):短時(shí)間內(nèi) 有恢復(fù)跡象 斷路器會(huì)將部分請(qǐng)求發(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倉(cāng)庫(kù)中。

          Spring Cloud Config 組件中,分兩個(gè)角色,一是config server,二是config client。

          使用方式:

          • 添加pom依賴
          • 配置文件添加相關(guān)配置
          • 啟動(dòng)類添加注解@EnableConfigServer

          25、說(shuō)說(shuō)你對(duì)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)常見(jiàn)的功能有路由轉(zhuǎn)發(fā)、權(quán)限校驗(yàn)、限流控制等作用。

          使用了一個(gè)RouteLocatorBuilder的bean去創(chuàng)建路由,除了創(chuàng)建路由RouteLocatorBuilder可以讓你添加各種predicates和filters,predicates斷言的意思,顧名思義就是根據(jù)具體的請(qǐng)求的規(guī)則,由具體的route去處理,filters是各種過(guò)濾器,用來(lái)對(duì)請(qǐng)求做各種判斷和修改。

          參考;http://1pgqu.cn/M0NZo

          總結(jié)

          Spring Cloud目前相當(dāng)?shù)幕馃?,也差不多是java開(kāi)發(fā)者必備技能之一了。面試的時(shí)候被問(wèn),那也是正常不過(guò)了,很多人可能用來(lái)很久,但是沒(méi)有去了解過(guò)原理,面試照樣掛掉。背面試題,在很大層面上還是很有用的。但從長(zhǎng)遠(yuǎn)角度來(lái)說(shuō),希望大家更深層次去學(xué)習(xí)、去實(shí)踐。只有自己真的掌握,那才叫NB。

          來(lái)源:Java后端面試官

          -End-

          最近有一些小伙伴,讓我?guī)兔φ乙恍?nbsp;面試題 資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來(lái),可以說(shuō)是程序員面試必備!所有資料都整理到網(wǎng)盤(pán)了,歡迎下載!

          點(diǎn)擊??卡片,關(guān)注后回復(fù)【面試題】即可獲取

          在看點(diǎn)這里好文分享給更多人↓↓

          瀏覽 39
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  豆花视频社区成人 | 爱爱免费网址 | 国产午夜影视 | 国产精品视频免费看 | 亚洲肏屄网 |