SpringCloud面試題


一、什么是SpringCloud?

SpringCloud是一系列框架的集合。它利用了SpringBoot的便攜性對分布式的基礎組件進行開發,
例如注冊中心(Eureka),配置中心(Config),消息總線(Bus),負載均衡(Ribbon),
智能路由/網關(Zuul),熔斷器(Hystrix),數據監控(Hystrix Dashboard)等,
都可以使用SpringBoot風格進行開發配置並一鍵啟動和部署。

 

二、優缺點

1、優點:

  • 出身Spring家族,背景強大
  • 組件豐富,功能齊全
  • 微服務是跨平台的,適用於任何語言
  • 服務拆分較細,耦合度低

2、缺點

  • 微服務過多,治理成本高
  • 分布式系統開發成本高
  • 學習成本高

 

三、整體架構

 

 

四、SpringBoot和SpringCloud的關系

SpringBoot專注於單個微服務開發,SpringCloud則是對微服務系統整體進行 管理和協調。

SpringBoot可以離開SpringCloud單獨開發,而SpringCloud則 依賴於SpringBoot。

 

 

五、使用SpringBoot開發微服務面臨的問題

1、分布式系統的復雜性---包括帶寬問題、安全問題、延遲問題等

2、服務發現問題---如何注冊服務,如何查找並連接已注冊服務的問題

3、冗余---分布式系統中的冗余問題

4、負載均衡---如何分配各種資源的合理使用問題

5、性能---如何在各種服務運營時保證性能 6、部署的復雜性問題

 

 

六、服務注冊和發現是什么?SpingCloud如何實現?

在一個SpringCloud項目中會有多個微服務,每個微服務之間通過API相互調用 ,當其中有微服務API發生改變時調用方也需要作出改變,因此需要一個服務用 來保存各個微服務的API信息,當其他服務需要調用時從該服務中查找所需服務 API即可。 在SpringCloud中是通過Eureka實現服務注冊與發現。

 

七、SpringCloud和Dubbo的區別

  • Dubbo服務調用方式是RPC,SpringCloud的調用方式是Restful風格的API
  • 注冊中心:Dubbo是Zookeeper,SpringCloud是Eureka,也可以是Zookeeper
  • Dubbo很多服務自己沒有實現,通過整合第三方實現功能,SpringCloud有完善的服務體系

 

八、負載均衡的意義是什么?

負載平衡旨在優化資源使用,最大化吞吐量,最小化響應時間,避免單一資源過載。

 

九、什么是Hystrix?它是如何實現容錯的?

Hystrix是一個延遲和容錯庫,當出現故障不可避免時,停止級聯故障在復雜的 分布式系統中實現彈性。 容錯實現方式:在服務提供方使用Hystrix並定義Fallback方法,當正常服務出 現異常時則會執行Fallback方法。Fallback方法應和公開的服務方法返回相同 數據類型。

 

 

十、什么是SpringCloud Bus?

Bus通常和Config一起使用,當配置文件修改時,用到該配置文件的服務需要 重新刷新獲取最新配置信息,如果服務太多則太多繁瑣。因此可已通過Bus將各 個服務之間連接起來,可以用於廣播配置文件的更改和服務的監控和管理。

 

十一、什么是SpringCloud Feign?

Feign是Spring Cloud組件中一個輕量級RESTful的HTTP服務客戶端,Feign內置了Ribbon,用來做客戶端負載均衡,去調用服務注冊中心的服務。

 

十二、SpringCloud熔斷器作用?

當一個服務調用另一個服務時,由於網絡或自身原因,調用者就會等待被調用者 響應消息,當更多的服務請求該資源時就會產生更多的請求等待,從而造成雪崩 效應。

熔斷器完全打開狀態:一段時間內,請求達到一定數量就無法調用,而且多次監測沒有恢復跡象,熔斷器就會完全打開
熔斷器半開狀態:短時間內有恢復跡象,熔斷器會將部分請求發送給該服務,正常調用時熔斷器關閉
熔斷器關閉狀態:當服務一直處於正常狀態,就可以正常調用

 

十三、什么是SpringCloud Config?

由於分布式系統中配,由於服務數量多,為了方便服務的配置文件統一管理,實時更新,所以需要分布式配置中心服務。
配置文件可以放在本地,也可以放在git倉庫。

 

 

十四、什么是SpringCloud Gateway?

Spring Cloud Gateway是Spring Cloud官方推出的第二代網關框架,取代 Zuul網關。網關在微服務系統中有着非常重要作用,網關常見的功能 有路由轉發、權限校驗、限流控制等作用。 使用了一個RouteLocatorBuilder的bean去創建路由,除了創建路由 RouteLocatorBuilder可以讓你添加各種predicates和filters,predicates斷 言的意思,顧名思義就是根據具體的請求的規則,由具體的route去處理, filters是各種過濾器,用來對請求做各種判斷和修改。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM