天天看點

2022 最新 微服務 面試題 (一)

2022 最新 微服務 面試題

  • ​​1、您對微服務有何了解?​​
  • ​​2、微服務架構有哪些優勢?​​
  • ​​3。微服務有哪些特點?​​
  • ​​· 解耦 – 系統内的服務很大程度上是分離的。是以,整個應用程式可以輕 松建構,更改和擴充​​
  • ​​· 自治 – 開發人員和團隊可以彼此獨立工作,進而提高速度​​
  • ​​· 責任 – 微服務不關注應用程式作為項目。相反,他們将應用程式視為他 們負責的産品​​
  • ​​4、設計微服務的最佳實踐是什麼?​​
  • ​​5、微服務架構如何運作?​​
  • ​​6、微服務架構的優缺點是什麼?​​
  • ​​7、單片,SOA 和微服務架構有什麼差別?​​
  • ​​· 單片架構 類似于大容器,其中應用程式的所有軟體元件組裝在一起并緊密 封裝。​​
  • ​​據傳遞,也可以涉及兩個或多個協調某些活動的服務。​​
  • ​​8、在使用微服務架構時,您面臨哪些挑戰?​​
  • ​​· 自動化元件 :難以自動化,因為有許多較小的元件。是以,對于每個元件, 我們必須遵循 Build,Deploy 和 Monitor 的各個階段。​​
  • ​​· 調試 :很難找到錯誤的每一項服務。維護集中式日志記錄和儀表闆以調試 問題至關重要。​​
  • ​​9、SOA 和微服務架構之間的主要差別是什麼?​​
  • ​​10、微服務有什麼特點?​​
  • ​​11、什麼是領域驅動設計?​​
  • ​​12、為什麼需要域驅動設計(DDD)?​​
  • ​​13、什麼是無所不在的語言?​​
  • ​​14、什麼是凝聚力?​​
  • ​​15、什麼是耦合?​​
  • ​​16、什麼是 REST / RESTful 以及它的用途是什麼?​​
  • ​​17、你對 Spring Boot 有什麼了解?​​
  • ​​18、什麼是 Spring 引導的執行器?​​
  • ​​19、什麼是 Spring Cloud?​​
  • ​​20、Spring Cloud 解決了哪些問題?​​
  • ​​21、在 Spring MVC 應用程式中使用 WebMvcTest 注釋有什 麼用處?​​
  • ​​22。你能否給出關于休息和微服務的要點?​​
  • ​​23、什麼是不同類型的微服務測試?​​
  • ​​24、您對 Distributed Transaction 有何了解?​​
  • ​​25、什麼是 Idempotence 以及它在哪裡使用?​​
  • ​​26、什麼是有界上下文?​​
  • ​​27、什麼是雙因素身份驗證?​​
  • ​​28、雙因素身份驗證的憑據類型有哪些?​​
  • ​​29、什麼是客戶證書?​​
  • ​​30、PACT 在微服務架構中的用途是什麼?​​
  • ​​微服務中的用法​​
  • ​​31、什麼是 OAuth?​​
  • ​​32、康威定律是什麼?​​
  • ​​*“* *任* *何* *設* *計* *系* *統* *的* *組* *織* *(* *廣* *泛* *定* *義* *)* *都* *将* *産* *生* *一* *種* *設* *計* *,* *其* *結* *構* *是* *組* *織* *通* *信* *結* *構* *的* *副* *本* *。 ”* *–* Mel Conway​​
  • ​​33、合同測試你懂什麼?​​
  • ​​34、什麼是端到端微服務測試?​​
  • ​​35、Container 在微服務中的用途是什麼?​​
  • ​​36、什麼是微服務架構中的 DRY?​​
  • ​​37、什麼是消費者驅動的合同(CDC)?​​
  • ​​38、Web,RESTful API 在微服務中的作用是什麼?​​
  • ​​39、您對微服務架構中的語義監控有何了解?​​
  • ​​40、我們如何進行跨功能測試?​​
  • ​​41、我們如何在測試中消除非決定論?​​
  • ​​42、Mock 或 Stub 有什麼差別?​​
  • ​​43、您對 Mike Cohn 的測試金字塔了解多少?​​
  • ​​44、Docker 的目的是什麼?​​
  • ​​45、什麼是金絲雀釋放?​​
  • ​​46、什麼是持續內建(CI)?​​
  • ​​47、什麼是持續監測?​​
  • ​​48、架構師在微服務架構中的角色是什麼?​​
  • ​​· 決定整個軟體系統的布局。​​
  • ​​49、我們可以用微服務建立狀态機嗎?​​
  • ​​50、什麼是微服務中的反應性擴充?​​
  • ​​*希* *望* *這* *些* *微* *服* *務* *面* *試* *問* *題* *可* *以* *幫* *助* *您* *進* *行* *微* *服* *務* *架* *構* *師* *訪* *談* *。*​​

1、您對微服務有何了解?

微服務 , 又稱微服務 架 構 , 是一種架構風格 , 它将應用程式建構為以 業務領域 為

模型的小型自治服務集合 。

通俗地說, 你必須看到蜜蜂如何通過對齊六角形蠟細胞來建構它們的蜂窩狀物。 他們最初從使用各種材料的小部分開始, 并繼續從中建構一個大型蜂箱。 這些細 胞形成圖案, 産生堅固的結構, 将蜂窩的特定部分固定在一起。 這裡, 每個細胞 獨立于另一個細胞, 但它也與其他細胞相關。 這意味着對一個細胞的損害不會損 害其他細胞, 是以, 蜜蜂可以在不影響完整蜂箱的情況下重建這些細胞。

2022 最新 微服務 面試題 (一)

圖 1: 微服務的 蜂窩表示 – 微服務訪談問題

請參考上圖。 這裡, 每個六邊形形狀代表單獨的服務元件。 與蜜蜂的工作類似, 每個靈活團隊都使用可用的架構和所選的技術堆棧建構單獨的服務元件。 就像在

蜂箱中一樣, 每個服務元件形成一個強大的微服務架構 , 以提供更好的可擴充性 。 此外, 靈活團隊可以單獨處理每個服務元件的問題, 而對整個應用程式沒有影響

或影響最小。

2、微服務架構有哪些優勢?

2022 最新 微服務 面試題 (一)

圖 2: 微服務的 優點 – 微服務訪談問題

· 獨立開發 – 所有微服務都可以根據各自的功能輕松開發

· 獨立部署 – 基于其服務,可以在任何應用程式中單獨部署它們

· 故障隔離 – 即使應用程式的一項服務不起作用,系統仍可繼續運作

· 混合技術堆棧 – 可以使用不同的語言和技術來建構同一應用程式的不同 服務

· 粒度縮放 – 單個元件可根據需要進行縮放,無需将所有元件縮放在一起

3。微服務有哪些特點?

2022 最新 微服務 面試題 (一)

圖 3: 微服務的 特點 – 微服務訪談問題

· 解耦 – 系統内的服務很大程度上是分離的。是以,整個應用程式可以輕 松建構,更改和擴充

· 元件化 – 微服務被視為可以輕松更換和更新的獨立元件

· 業務能力 – 微服務非常簡單,專注于單一功能

· 自治 – 開發人員和團隊可以彼此獨立工作,進而提高速度

· 持續傳遞 – 通過軟體建立,測試和準許的系統自動化,允許頻繁釋出軟 件

· 責任 – 微服務不關注應用程式作為項目。相反,他們将應用程式視為他 們負責的産品

· 分散治理 – 重點是使用正确的工具來做正确的工作。這意味着沒有标準 化模式或任何技術模式。開發人員可以自由選擇最有用的工具來解決他們的問題

· 靈活 – 微服務支援靈活開發。任何新功能都可以快速開發并再次丢棄

4、設計微服務的最佳實踐是什麼?

以下是設計微服務的最佳實踐:

2022 最新 微服務 面試題 (一)

圖 4: 設計微服務的最佳實踐 – 微服務訪談問題

5、微服務架構如何運作?

微服務架構具有以下元件:

2022 最新 微服務 面試題 (一)

圖 5: 微服務 架構 – 微服務面試問題

· 用戶端 – 來自不同裝置的不同使用者發送請求。

· 身份提供商 – 驗證使用者或客戶身份并頒發安全令牌。

· API 網關 – 處理用戶端請求。

· 靜态内容 – 容納系統的所有内容。

· 管理 – 在節點上平衡服務并識别故障。

· 服務發現 – 查找微服務之間通信路徑的指南。

· 内容傳遞網絡 – 代理伺服器及其資料中心的分布式網絡。

· 遠端服務 – 啟用駐留在 IT 裝置網絡上的遠端通路資訊。

6、微服務架構的優缺點是什麼?

2022 最新 微服務 面試題 (一)

7、單片,SOA 和微服務架構有什麼差別?

2022 最新 微服務 面試題 (一)

圖 6: 單片 SOA 和微服務之間的比較 – 微服務訪談問題

· 單片架構 類似于大容器,其中應用程式的所有軟體元件組裝在一起并緊密 封裝。

· 一個 面向服務的架構 是一種互相通信服務的集合。通信可以涉及簡單的數

據傳遞,也可以涉及兩個或多個協調某些活動的服務。

· 微服務架構 是一種架構風格,它将應用程式建構為以業務域為模型的小型 自治服務集合。

8、在使用微服務架構時,您面臨哪些挑戰?

開發一些較小的微服務聽起來很容易, 但開發它們時經常遇到的挑戰如下。

· 自動化元件 :難以自動化,因為有許多較小的元件。是以,對于每個元件, 我們必須遵循 Build,Deploy 和 Monitor 的各個階段。

· 易感性 :将大量元件維護在一起變得難以部署,維護,監控和識别問題。 它需要在所有元件周圍具有很好的感覺能力。

· 配置管理 :有時在各種環境中維護元件的配置變得困難。

· 調試 :很難找到錯誤的每一項服務。維護集中式日志記錄和儀表闆以調試 問題至關重要。

9、SOA 和微服務架構之間的主要差別是什麼?

SOA 和微服務之間的主要差別如下:

2022 最新 微服務 面試題 (一)

10、微服務有什麼特點?

您可以列出微服務的特征, 如下所示:

2022 最新 微服務 面試題 (一)

圖 7: 微服務的 特征 – 微服務訪談問題

11、什麼是領域驅動設計?

2022 最新 微服務 面試題 (一)

圖 8: DDD 原理 – 微服務面試問題

12、為什麼需要域驅動設計(DDD)?

2022 最新 微服務 面試題 (一)

圖 9: 我們需要 DDD 的因素 – 微服務面試問題

13、什麼是無所不在的語言?

如果您必須定義 泛在語言( UL) , 那麼它是特定域的開發人員和使用者使用的通用

語言, 通過該語言可以輕松解釋域。

無處不在的語言必須非常清晰, 以便它将所有團隊成員放在同一頁面上, 并以機 器可以了解的方式進行翻譯。

14、什麼是凝聚力?

子產品内部元素所屬的程度被認為是 凝聚力 。

15、什麼是耦合?

元件之間依賴關系強度的度量被認為是 耦合 。 一個好的設計總是被認為具有 高内 聚力 和 低耦合性 。

16、什麼是 REST / RESTful 以及它的用途是什麼?

Representational State Transfer( REST) / RESTful Web 服務是一種幫助計 算機系統通過 Internet 進行通信的架構風格。 這使得微服務更容易了解和實作。

微服務可以使用或不使用 RESTful API 實作, 但使用 RESTful API 建構松散耦合 的微服務總是更容易。

17、你對 Spring Boot 有什麼了解?

事實上, 随着新功能的增加 , 彈簧變得越來越複雜。 如果必須啟動新的 spring 項

目 ,則 必須添加建構路徑或添加 maven 依賴項 ,配 置應用程式伺服器 ,添 加 spring 配置。 是以一切都必須從頭開始。

Spring Boot 是解決這個問題的方法。 使用 spring boot 可以避免所有樣闆代碼 和配置。 是以, 基本上認為自己就好像你正在烘烤蛋糕一樣, 春天就像制作蛋糕 所需的成分一樣, 彈簧靴就是你手中的完整蛋糕。

2022 最新 微服務 面試題 (一)

圖 10: Spring Boot 的因素 – 微服務面試問題

18、什麼是 Spring 引導的執行器?

Spring Boot 執行程式提供了 restful Web 服務 ,以 通路生産環境中運作應用程式 的目前狀态。 在執行器的幫助下, 您可以檢查各種名額并監控您的應用程式。

19、什麼是 Spring Cloud?

根據 Spring Cloud 的官方網站, Spring Cloud 為開發人員提供了快速建構分布

式系統中一些常見模式的工具( 例如配置管理, 服務發現, 斷路器, 智能路由, 上司選舉, 分布式會話, 叢集狀态)。

20、Spring Cloud 解決了哪些問題?

在使用 Spring Boot 開發分布式微服務時 ,我們面臨的問題很少由 Spring Cloud 解決。

· 與分布式系統相關的複雜性 – 包括網絡問題,延遲開銷,帶寬問題,安 全問題。

· 處理服務發現的能力 – 服務發現允許叢集中的程序和服務找到彼此并進 行通信。

· 解決備援問題 – 備援問題經常發生在分布式系統中。

· 負載平衡 – 改進跨多個計算資源(例如計算機叢集,網絡連結,中央處 理單元)的工作負載分布。

· 減少性能問題 – 減少因各種操作開銷導緻的性能問題。

21、在 Spring MVC 應用程式中使用 WebMvcTest 注釋有什 麼用處?

2022 最新 微服務 面試題 (一)

在測試目标隻關注 Spring MVC 元件的情況下 , WebMvcTest 注釋用于單元測 試

Spring MVC 應用程式 。在上面顯示的快照中 ,我們隻想啟動 ToTestController。 執行此單元測試時, 不會啟動所有其他控制器和映射。

22。你能否給出關于休息和微服務的要點?

雖然您可以通過多種方式實作微服務, 但 REST over HTTP 是實作微服務的一種 方式 。REST 還可用于其他應用程式 ,如 Web 應用程式 ,API 設計和 MVC 應用程 序, 以提供業務資料。

微服務是一種體系結構, 其中系統的所有元件都被放入單獨的元件中, 這些元件 可以單獨建構, 部署和擴充。 微服務的某些原則和最佳實踐有助于建構彈性應用 程式。

簡而言之, 您可以說 REST 是建構微服務的媒介。

23、什麼是不同類型的微服務測試?

在使用微服務時, 由于有多個微服務協同工作, 測試變得非常複雜。 是以, 測試 分為不同的級别。

· 在 底層 ,我們有 面向技術的測試, 如單元測試和性能測試。這些是完全自 動化的。

· 在 中間層面 ,我們進行了諸如壓力測試和可用性測試之類的 探索 性測試。

· 在 頂層, 我們的 驗收測試 數量很少。這些驗收測試有助于利益相關者理 解和驗證軟體功能。

24、您對 Distributed Transaction 有何了解?

分布式事務 是指單個事件導緻兩個或多個不能以原子方式送出的單獨資料源的突

變的任何情況。 在微服務的世界中, 它變得更加複雜, 因為每個服務都是一個工 作單元, 并且大多數時候多個服務必須協同工作才能使業務成功。

25、什麼是 Idempotence 以及它在哪裡使用?

幂等 性是能夠以這樣的方式做兩次事情的特性, 即最終結果将保持不變, 即好像 它隻做了一次。

用法 :在遠端服務或資料源中 使用 Idempotence,這樣當它多次接收指令時 ,它 隻處理指令一次。

26、什麼是有界上下文?

有界上下文是域驅動設計的核心模式。 DDD 戰略設計部門的重點是處理大型模型 和團隊。 DDD 通過将大型模型劃分為不同的有界上下文并明确其互相關系來處理 大型模型。

27、什麼是雙因素身份驗證?

雙因素身份驗證為帳戶登入過程啟用第二級身份驗證。

2022 最新 微服務 面試題 (一)

圖 11: 雙因素認證的表示 – 微服務訪談問題

是以, 假設使用者必須隻輸入使用者名和密碼, 那麼這被認為是單因素身份驗證。

28、雙因素身份驗證的憑據類型有哪些?

這三種憑證是:

2022 最新 微服務 面試題 (一)

圖 12: 雙因素認證的證書類型 – 微服務面試問題

29、什麼是客戶證書?

用戶端系統用于向遠端伺服器發出經過身份驗證的請求的一種數字證書稱為 客戶 端證書 。 用戶端證書在許多互相認證設計中起着非常重要的作用, 為請求者的身 份提供了強有力的保證。

30、PACT 在微服務架構中的用途是什麼?

PACT 是一個開源工具, 允許測試服務提供者和消費者之間的互動, 與合同隔離 , 進而提高微服務內建的可靠性。

微服務中的用法

· 用于在微服務中實作消費者驅動的合同。

· 測試微服務的消費者和提供者之間的消費者驅動的合同。

檢視即将到來的批次

31、什麼是 OAuth?

OAuth 代表開放授權協定 。這允許通過在 HTTP 服務上啟用用戶端應用程式( 例 如第三方提供商 Facebook, GitHub 等) 來通路資源所有者的資源。 是以, 您可 以在不使用其憑據的情況下與另一個站點共享存儲在一個站點上的資源。

32、康威定律是什麼?

“ 任 何 設 計 系 統 的 組 織 ( 廣 泛 定 義 ) 都 将 産 生 一 種 設 計 , 其 結 構 是 組 織 通 信 結 構 的 副 本 。 ” – Mel Conway

2022 最新 微服務 面試題 (一)

圖 13: Conway 定律的表示 – 微服務訪談問題

該法律基本上試圖傳達這樣一個事實: 為了使軟體子產品起作用, 整個團隊應該進 行良好的溝通。 是以, 系統的結構反映了産生它的組織的社會邊界。

33、合同測試你懂什麼?

根據 Martin Flower 的說法, 合同測試 是在外部服務邊界進行的測試, 用于驗證 其是否符合消費服務預期的合同。

此外, 合同測試不會深入測試服務的行為。 更确切地說, 它測試該服務調用的輸 入& 輸出包含所需的屬性和所述響應延遲, 吞吐量是允許的限度内。

34、什麼是端到端微服務測試?

端到端測試驗證了工作流中的每個流程都正常運作。 這可確定系統作為一個整體 協同工作并滿足所有要求。

通俗地說, 你可以說端到端測試是一種測試, 在特定時期後測試所有東西。

2022 最新 微服務 面試題 (一)

圖 14: 測試層次 – 微服務面試問題

35、Container 在微服務中的用途是什麼?

容器是管理基于微服務的應用程式以便單獨開發和部署它們的好方法 。 您可以将

微服務封裝在容器映像及其依賴項中 , 然後可以使用它來滾動按需執行個體的微服務 , 而無需任何額外的工作。

2022 最新 微服務 面試題 (一)

圖 15: 容器的表示及其在微服務中的使用方式 – 微服務訪談問題

36、什麼是微服務架構中的 DRY?

DRY 代表 不要重複自己 。它基本上促進了重用代碼的概念 。這導緻開發和共享庫 , 這反過來導緻緊密耦合。

37、什麼是消費者驅動的合同(CDC)?

這基本上是用于開發微服務的模式, 以便它們可以被外部系統使用。 當我們處理

微服務時 , 有一個特定的提供者建構它 , 并且有一個或多個使用微服務的消費者 。

通常 ,提供程式在 XML 文檔中指定接口 。但在消費者驅動的合同中, 每個服務消 費者都傳達了提供商期望的接口。

38、Web,RESTful API 在微服務中的作用是什麼?

微服務架構基于一個概念, 其中所有服務應該能夠彼此互動以建構業務功能。 因 此, 要實作這一點 , 每個微服務必須具有接口 。 這使得 Web API 成為微服務的一 個非常重要的推動者。 RESTful API 基于 Web 的開放網絡原則, 為建構微服務架 構的各個元件之間的接口提供了最合理的模型。

39、您對微服務架構中的語義監控有何了解?

語義監控, 也稱為 綜合監控, 将自動化測試與監控應用程式相結合, 以檢測業 務失敗因素。

40、我們如何進行跨功能測試?

跨功能測試是對非功能性需求的驗證, 即那些無法像普通功能那樣實作的需求。

41、我們如何在測試中消除非決定論?

非确定性測試 ( NDT) 基本上是不可靠的測試 。 是以 , 有時可能會發生它們通過 , 顯然有時它們也可能會失敗。 當它們失敗時, 它們會重新運作通過。

從測試中删除非确定性的一些方法如下:

1、 隔離

2、 異步

3、 遠端服務

4、 資源洩漏

5、 時間

42、Mock 或 Stub 有什麼差別?

存根 Stub

· 一個有助于運作測試的虛拟對象。

· 在某些可以寫死的條件下提供固定行為。

· 永遠不會測試存根的任何其他行為。

例如 ,對于空堆棧 ,您可以建立一個隻為 empty()方法傳回 true 的存根 。是以 , 這并不關心堆棧中是否存在元素。

嘲笑 Mock

· 一個虛拟對象,其中最初設定了某些屬性。

· 此對象的行為取決于 set 屬性。

· 也可以測試對象的行為。

例如 ,對 于 Customer 對象 ,您 可以通過設定名稱和年齡來模拟它 。您可以将 age 設定為 12,然後測試 isAdult()方法 ,該方法将在年齡大于 18 時傳回 true。因 此, 您的 Mock Customer 對象适用于指定的條件。

43、您對 Mike Cohn 的測試金字塔了解多少?

Mike Cohn 提供了一個名為 Test Pyramid 的模型 。 這 描述了軟體開發所需的自

動化測試類型。

2022 最新 微服務 面試題 (一)

圖 16: Mike Cohn 的測試金字塔 – 微服務面試問題

根據金字塔, 第一層的測試數量應該最高。 在服務層, 測試次數應小于單元測試 級别, 但應大于端到端級别。

44、Docker 的目的是什麼?

Docker 提供了一個可用于托管任何應用程式的容器環境 。在此 ,軟體應用程式和 支援它的依賴項緊密打包在一起。

是以, 這個打包的産品被稱為 Container , 因為它是由 Docker 完成的, 是以它 被稱為 Docker 容器!

45、什麼是金絲雀釋放?

Canary Releasing 是一種降低在生産中引入新軟體版本的風險的技術 。這 是通過 将變更緩慢地推廣到一小部分使用者, 然後将其釋出到整個基礎架構, 即将其提供 給每個人來完成的。

46、什麼是持續內建(CI)?

持續內建( CI) 是每次團隊成員送出版本控制更改時自動建構和測試代碼的過程 。 這鼓勵開發人員通過在每個小任務完成後将更改合并到共享版本控制存儲庫來共

享代碼和單元測試。

47、什麼是持續監測?

持續監控 深入監控覆寫範圍, 從浏覽器内前端性能名額, 到應用程式性能, 再到 主機虛拟化基礎架構名額。

48、架構師在微服務架構中的角色是什麼?

微服務架構中的架構師扮演以下角色:

· 決定整個軟體系統的布局。

· 幫助确定元件的分區。是以,他們確定元件互相粘合,但不緊密耦合。

· 與開發人員共同編寫代碼,了解日常生活中面臨的挑戰。

· 為開發微服務的團隊提供某些工具和技術的建議。

· 提供技術治理,以便技術開發團隊遵循微服務原則。

49、我們可以用微服務建立狀态機嗎?

我們知道擁有自己的資料庫的每個微服務都是一個可獨立部署的程式單元, 這反 過來又讓我們可以建立一個狀态機。 是以, 我們可以為特定的微服務指定不同的 狀态和事件。

例如, 我們可以定義 Order 微服務。 訂單可以具有不同的狀态。 Order 狀态的轉 換可以是 Order 微服務中的獨立事件。

50、什麼是微服務中的反應性擴充?

Reactive Extensions 也稱為 Rx。 這是一種設計方法, 我們通過調用多個服務來 收集結果, 然後編譯組合響應。 這些調用可以是同步或異步, 阻塞或非阻塞。 Rx 是分布式系統中非常流行的工具, 與傳統流程相反。

希 望 這 些 微 服 務 面 試 問 題 可 以 幫 助 您 進 行 微 服 務 架 構 師 訪 談 。

翻譯來源:

​​https://www.edureka.co/blog/interview-questions/microservices-interview-questions/​​