本篇內容主要講解“SpringCloud相關面試題有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“SpringCloud相關面試題有哪些”吧!
創(chuàng)新互聯(lián)建站專注于施甸企業(yè)網(wǎng)站建設,成都響應式網(wǎng)站建設,電子商務商城網(wǎng)站建設。施甸網(wǎng)站建設公司,為施甸等地區(qū)提供建站服務。全流程按需定制,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務
1、微服務的優(yōu)點缺點?說下開發(fā)項目中遇到的坑?
優(yōu)點:
(1)每個服務直接足夠內聚,代碼容易理解
(2)開發(fā)效率高,一個服務只做一件事,適合小團隊開發(fā)
(3)松耦合,有功能意義的服務。
(4)可以用不同語言開發(fā),面向接口編程。
(5)易于第三方集成
(6)微服務只是業(yè)務邏輯的代碼,不會和HTML,CSS或其他界面結合.
(7)可以靈活搭配,連接公共庫/連接獨立庫
缺點:
(1)分布式系統(tǒng)的責任性
(2)多服務運維難度加大。
(3)系統(tǒng)部署依賴,服務間通信成本,數(shù)據(jù)一致性,系統(tǒng)集成測試,性能監(jiān)控。
2、什么是springcloud?
Spring cloud流應用程序啟動器是基于Spring Boot的Spring集成應用程序,提供與外部系統(tǒng)的集成。Spring cloud Task,一個生命周期短暫的微服務框架,用于快速構建執(zhí)行有限數(shù)據(jù)處理的應用程序
3、spring cloud 和dubbo區(qū)別?
(1)服務調用方式 dubbo是RPC springcloud Rest Api
(2)注冊中心,dubbo 是zookeeper springcloud是eureka,也可以是zookeeper
(3)服務網(wǎng)關,dubbo本身沒有實現(xiàn),只能通過其他第三方技術整合,springcloud有Zuul路由網(wǎng)關,作為路由服務器,進行消費者的請求分發(fā),springcloud支持斷路器,與git完美集成配置文件支持版本控制,事物總線實現(xiàn)配置文件的更新與服務自動裝配等等一系列的微服務架構要素。
4、REST 和RPC對比
(1)RPC主要的缺陷是服務提供方和調用方式之間的依賴太強,需要對每一個微服務進行接口的定義,并通過持續(xù)繼承發(fā)布,嚴格版本控制才不會出現(xiàn)沖突。
(2)REST是輕量級的接口,服務的提供和調用不存在代碼之間的耦合,只需要一個約定進行規(guī)范。
5、你所知道的微服務技術棧?
(1)服務開發(fā):springboot spring springmvc
(2)服務配置與管理:Netfix公司的Archaiusm ,阿里的Diamond
(3)服務注冊與發(fā)現(xiàn):Eureka,Zookeeper
(4)服務調用:Rest RPC gRpc
(5)服務熔斷器:Hystrix
(6)服務負載均衡:Ribbon Nginx
(7)服務接口調用:Fegin
(8)消息隊列:Kafka Rabbitmq activemq
(9)服務配置中心管理:SpringCloudConfig
(10)服務路由(API網(wǎng)關)Zuul
(11)事件消息總線:SpringCloud Bus
6、負載均衡的意義是什么?
在計算中,負載均衡可以改善跨計算機,計算機集群,網(wǎng)絡鏈接,中央處理單元或磁盤驅動器等多種計算資源的工作負載分布。負載均衡旨在優(yōu)化資源使用,最大吞吐量,最小響應時間并避免任何單一資源的過載。使用多個組件進行負載均衡而不是單個組件可能會通過冗余來提高可靠性和可用性。負載平衡通常涉及專用軟件或硬件,例如多層交換機或域名系統(tǒng)服務進程。
7、微服務之間是如何獨立通訊的?
(1)遠程調用,比如feign調用,直接通過遠程過程調用來訪問別的service。
(2)消息中間件
8、為什么要使用微服務?
(1)隨著互聯(lián)網(wǎng)的快速發(fā)展,各行各業(yè)都在用互聯(lián)網(wǎng)?;ヂ?lián)網(wǎng)已經(jīng)離不開人們的形形色色。隨著越來越多的用戶,業(yè)務場景也愈來愈復雜。
(2)傳統(tǒng)的單體架構已經(jīng)很難滿足互聯(lián)網(wǎng)技術發(fā)展的要求,代碼可維護性擴展性和可讀性降低,維護成本的提高都是驅動微服務的發(fā)展趨勢。
1、springcloud如何實現(xiàn)服務的注冊?
(1)服務發(fā)布時,指定對應的服務名,將服務注冊到 注冊中心(eureka zookeeper)
(2)注冊中心加@EnableEurekaServer,服務用@EnableDiscoveryClient,然后用ribbon或feign進行服務直接的調用發(fā)現(xiàn)。
2、Eureka和Zookeeper區(qū)別
(1)Eureka取CAP的AP,注重可用性,Zookeeper取CAP的CP注重
一致性。
(2)Zookeeper在選舉期間注冊服務癱瘓,雖然服務最終會恢復,但選舉期間不可用。
(3)eureka的自我保護機制,會導致一個結果就是不會再從注冊列表移除因長時間沒收到心跳而過期的服務。依然能接受新服務的注冊和查詢請求,但不會被同步到其他節(jié)點。不會服務癱瘓。
(4)Zookeeper有Leader和Follower角色,Eureka各個節(jié)點平等。
(5)Zookeeper采用過半數(shù)存活原則,Eureka采用自我保護機制解決分區(qū)問題。
(6)eureka本質是一個工程,Zookeeper只是一個進程。
3、eureka自我保護機制是什么?
當Eureka Server 節(jié)點在短時間內丟失了過多實例的連接時(比如網(wǎng)絡故障或頻繁啟動關閉客戶端)節(jié)點會進入自我保護模式,保護注冊信息,不再刪除注冊數(shù)據(jù),故障恢復時,自動退出自我保護模式。
4、什么是服務熔斷?什么是服務降級?
服務直接的調用,比如在高并發(fā)情況下出現(xiàn)進程阻塞,導致當前線程不可用,慢慢的全部線程阻塞,導致服務器雪崩。
服務熔斷:相當于保險絲,出現(xiàn)某個異常,直接熔斷整個服務,而不是一直等到服務超時。
服務降級:通過維護一個自己的線程池,當線程到達閾值的時候就啟動服務降級,如果其他請求繼續(xù)訪問就直接返回fallback的默認值。
5、什么是Ribbon?
ribbon是一個負載均衡客戶端,可以很好的控制http和tcp的一些行為。feign默認集成了ribbon。
6、什么是feigin?它的優(yōu)點是什么?
(1)feign采用的是基于接口的注解
(2)feign整合了ribbon,具有負載均衡的能力
(3)整合了Hystrix,具有熔斷的能力
使用:
(1)添加pom依賴。
(2)啟動類添加@EnableFeignClients
(3)定義一個接口@FeignClient(name=“xxx”)指定調用哪個服務
7、Ribbon和Feign的區(qū)別?
(1)Ribbon都是調用其他服務的,但方式不同。
(2)啟動類注解不同,Ribbon是@RibbonClient ,feign的是@EnableFeignClients
(3)服務指定的位置不同,Ribbon是在@RibbonClient注解上聲明,F(xiàn)eign則是在定義抽象方法的接口中使用@FeignClient聲明。
(4)調用方式不同,Ribbon需要自己構建http請求,模擬http請求然后使用RestTemplate發(fā)送給其他服務,步驟相當繁瑣。Feign需要將調用的方法定義成抽象方法即可。
8、springcloud斷路器作用?
當一個服務調用另一個服務由于網(wǎng)絡原因或自身原因出現(xiàn)問題,調用者就會等待被調用者的響應 當更多的服務請求到這些資源導致更多的請求等待,發(fā)生連鎖效應(雪崩效應)
斷路器有完全打開狀態(tài):一段時間內 達到一定的次數(shù)無法調用 并且多次監(jiān)測沒有恢復的跡象 斷路器完全打開 那么下次請求就不會請求到該服務
半開:短時間內 有恢復跡象 斷路器會將部分請求發(fā)給該服務,正常調用時 斷路器關閉
關閉:當服務一直處于正常狀態(tài) 能正常調用
9、什么是Spring Cloud Bus?
spring cloud bus 將分布式的節(jié)點用輕量的消息代理連接起來,它可以用于廣播配置文件的更改或者服務直接的通訊,也可用于監(jiān)控。如果修改了配置文件,發(fā)送一次請求,所有的客戶端便會重新讀取配置文件。
使用:
(1)添加依賴
(2)配置rabbimq
10、什么是SpringCloudConfig?
在分布式系統(tǒng)中,由于服務數(shù)量巨多,為了方便服務配置文件統(tǒng)一管理,實時更新,所以需要分布式配置中心組件。在Spring Cloud中,有分布式配置中心組件spring cloud config ,它支持配置服務放在配置服務的內存中(即本地),也支持放在遠程Git倉庫中。在spring cloud config 組件中,分兩個角色,一是config server,二是config client。
使用:
(1)添加pom依賴
(2)配置文件添加相關配置
(3)啟動類添加注解@EnableConfigServer
11、Spring Cloud Gateway?
Spring Cloud Gateway是Spring Cloud官方推出的第二代網(wǎng)關框架,取代Zuul網(wǎng)關。網(wǎng)關作為流量的,在微服務系統(tǒng)中有著非常作用,網(wǎng)關常見的功能有路由轉發(fā)、權限校驗、限流控制等作用。
使用了一個RouteLocatorBuilder的bean去創(chuàng)建路由,除了創(chuàng)建路由RouteLocatorBuilder可以讓你添加各種predicates和filters,predicates斷言的意思,顧名思義就是根據(jù)具體的請求的規(guī)則,由具體的route去處理,filters是各種過濾器,用來對請求做各種判斷和修改。
12、什么是Hystrix?
防雪崩利器,具備服務降級,服務熔斷,依賴隔離,監(jiān)控(Hystrix Dashboard)服務降級:
雙十一 提示 哎喲喂,被擠爆了。app秒殺 網(wǎng)絡開小差了,請稍后再試。
優(yōu)先核心服務,非核心服務不可用或弱可用。HystrixCommand注解指定。fallbackMethod(回退函數(shù))中具體實現(xiàn)降級邏輯。
到此,相信大家對“SpringCloud相關面試題有哪些”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!