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