一、簡介
本文將總結一些常見的微服務架構SpringCloud相關的面試題。
二、面試題
【1】什麼是SpringCloud? 使用SpringCloud有什麼優勢?
SpringCloud是在SpringBoot基礎上構建的,用於快速構建分佈式系統的通用模式的工具集。
優勢:
- 約定優於配置
- 適用於各種環境.開發,部署在PC Server 或各種雲環境均可
- 隱藏了組件的複雜性,並提供聲明式,無xml的配置方式
- 開箱即用
- 輕量級的組件. Spring Cloud整合的組件大多比較輕量.例如Eureka,Zuul等等
- 組件豐富,功能齊全. Spring Cloud 爲微服務架構提供了非常完整的支持.例如,配置管理,服務發現,斷路器,微服務網關等
- 選型中立,豐富. 例如,Spring Cloud 支持使用Eureka,Zookeeper或Consul實現服務發現
- 靈活.Spring Cloud的組成部分是解耦的,開發人員可按需靈活挑選技術選型
【2】服務註冊和發現是什麼意思?SpringCloud如何實現?
當我們開始一個項目的時候,我們通常需要對屬性文件中進行所有的配置(yml文件配置)。隨着越來越多的服務開發和部署,添加和修改這些屬性變得更加複雜。有些服務可能會有所下降,而某些位置可能會發生變化。手動更改屬性可能會產生問題。Eureka服務註冊和服務發現可以在這種情況下提供幫助,由於所有服務都在Eureka服務器上註冊並通過調用Eureka服務器完成查找,因此無需處理服務地點的任何更改和處理。
【3】Ribbon負載均衡的意義是什麼?
負載均衡旨在優化資源使用,最大化吞吐量,最小化響應時間並避免單一資源的過載。使用多個組件進行負載而不是單個組件可能會通過冗餘來提高可靠性和可用性。
【4】什麼是Hystrix?它如何實現容錯?
Hystrix是斷路器的意思,提供服務熔斷處理,通俗理解就是提供失敗回調,避免雪崩效應導致整個系統不可用。通過Hystrix提供的fallback回調方法在服務調不通的時候快速返回調用失敗結果,防止服務一直在阻塞等待,進一步防止異常蔓延。
【5】什麼是Feign?它的優點是什麼?
Feign是遠程服務調用的意思,Feign默認集成了Ribbon負載均衡功能,可以實現對服務的負載均衡調用。
【6】什麼是Spring Cloud Bus?
消息總線,提供了一種方式用於刷新Spring Cloud Config配置中心配置文件的功能。Spring Cloud Bus提供了跨多個服務實例刷新配置的功能。通過將所有微服務連接到單個消息代理來實現的,無論何時刷新實例,此事件都會訂閱到偵聽此代理的所有微服務,並且他們也會自動刷新配置。可以通過端點、總線、刷新來實現對任何單個實例的刷新
【7】什麼是Zuul?如何配置?
Zuul是微服務網關組件。
作用:
- Zuul的核心其實就是一系列過濾器
- 身份認證與安全
- 審查與監控
- 動態路由
- 壓力測試
- 負載分配
- 靜態響應處理
- 多區域彈性
使用:
@EnableZuulProxy :開啓Zuul的網關功能
ZuulFilter過濾器:
【8】什麼是Spring Cloud Config?如何配置?
Spring Cloud Config 是一種用來動態獲取Git、SVN、本地的配置文件的一種工具。
使用:@EnableConfigServer
Server端配置:
三、總結
下面分享一個腦圖總結: