17 道微服務面試題
1、說說你對微服務有何瞭解
微服務,又稱微服務架構,是一種架構風格,它將應用程序構建爲以業務領域爲模型的小型自治服務集合。
通俗地說,你必須看到蜜蜂如何通過對齊六角形蠟細胞來構建它們的蜂窩狀物。他們最初從使用各種材料的小部分開始,並繼續從中構建一個大型蜂箱。這些細胞形成圖案,產生堅固的結構,將蜂窩的特定部分固定在一起。這裏,每個細胞獨立與另一個細胞,但它也與其他細胞相關。這意味着對一個細胞的損害不會損害其他細胞。因此,蜜蜂可以在不影響完整峯箱的情況下重建這些細胞。
微服務的蜂窩表示
參考上圖,這裏每個六變形形狀代表單獨的服務組件。與蜜蜂的工作類似,每個敏捷團隊都使用可用的框架和所選的技術堆棧構建單獨的服務組件。就像在蜂箱中一樣,每個服務組件形成一個強大的微服務架構,以提供更好的可擴展性。比外,敏捷團隊可以單獨處理每個服務組件的問題,而對整個應用程序沒有影響或影響最小。
2、說說微服務架構的優勢
3、微服務有哪些特點
-
解耦:系統內的服務很大程度上是分離的。因此,整個應用程序可以輕鬆構建,更改和擴展。
-
組件化:微服務被視爲可以輕鬆更換和升級的獨立組件。
-
業務能力:微服務非常簡單,專注於單一功能。
-
自治:開發人員和團隊可以彼此獨立工作,從而提高速度。
-
持續交付:通過軟件創建,測試和批准的系統自動化,允許頻繁發佈軟件。
-
責任:微服務不關注應用程序作爲項目。相反,他們將應用程序視爲他們負責的產品。
-
分散治理:重點是使用正確的工具來做正確的工作。這意味着沒有標準化模式或任何技術模式。開發人員可以自由選擇最有用的工具來解決他們的問題。
-
敏捷:微服務支持敏捷開發。任何新功能都可以快速開發並再次丟棄。
4、設計微服務的最佳實踐是什麼
以下是設計微服務的最佳實踐:
設計微服務的最佳實踐
5、微服務架構如何運作
微服務架構具有以下組件:
-
客戶端:來自不同設備的不同用戶發送請求
-
身份提供商:驗證用戶或客戶身份並頒發安全令牌
-
API 網關:處理客戶端請求
-
靜態內容:容納系統的所有內容
-
管理:在節點上平衡服務並識別故障
-
服務發現:查找微服務之間通信路徑的指南
-
網絡:代理服務器及其數據中心的分佈式網絡
-
遠程服務:啓用駐留在 IT 設備網絡上的遠程訪問信息
6、微服務架構的優缺點是什麼
7、單片、SOA 和微服務架構有什麼區別
單片 SOA 和微服務之間的比較
-
單片架構類似於大容器,其中應用程序的所有軟件組件組裝在一起並緊密封裝。
-
一個面向服務的架構師一種相互通信服務器的集合。通信可以涉及簡單的數據傳遞,也可以涉及兩個或多個協調某些活動的服務。
-
微服務架構是一種架構風格,它將應用程序構建爲以業務域爲模型的小型自治服務
集合。
8、在使用微服務架構時會面臨哪些挑戰
開發一些較小的微服務聽起來很容易,但開發它們時經常遇到的挑戰如下:
-
自動化組件:難以自動化,因爲有許多較小的組件。因此,對於每個組件,我們必須遵循 Build、Deploy 和 Monitor 的各個階段。
-
易感性:將大量組件維護在一起變得難以部署,維護,監控和識別問題。它需要在所有組件周圍具有很好的感知能力。
-
配置管理:有時在各種環境中維護組件的配置變得困難。
-
調試:很難找到錯誤的每一項服務。維護集中式日誌記錄和儀表板以調試問題至關重要。
9、SOA 和微服務架構之間的主要區別是什麼
SOA 和微服務之間的主要區別如下:
10、微服務有什麼特點
你可以列出微服務的特徵,如下所示:
微服務的特徵
11、什麼是領域驅動設計
DDD 原理
12、爲什麼需要域驅動設計(DDD)
我們需要 DDD 的因素
13、什麼是無所不在的語言
如果您必須定義泛在語言(UL),那麼它是特定域的開發人員和用戶使用的通用語言,通過該語言可以輕鬆解釋域。
無處不在的語言必須非常清晰,以便它將所有團隊成員放在同一頁面上,並以機器可以理解的方式進行翻譯。
14、什麼是凝聚力
模版內部元素所屬的程度被認爲是凝聚力。
15、什麼是耦合
組件之間依賴關係強度的度量被認爲是耦合。一個好的設計總是被認爲具有高內聚和低耦合性。
16、什麼是 REST / RESTful 以及它的用途
Representational State Transfer(REST)/RESTful Web 服務是一種幫組計算機系統通過 Internet 進行通信的架構風格。這使得微服務更容易理解和實現。微服務可以使用或不使用 RESTful API 實現,但使用 RESTful API 構建鬆散耦合的微服務總是更容易。
17、什麼是不同類型的微服務測試
在使用微服務是,由於有多個微服務協同工作,測試變得非常複雜。因此,測試分爲不同的級別。
-
在底層,我們有面向技術的測試,如單元測試和性能測試。這些事完全自動化的。
-
在中間層面,我們進行了諸如壓力測試和可用性測試之類的探索性測試。
-
在頂層,我們的驗收測試數量很少。這些驗收測試有助於利益相關這理解和驗證軟件功能。
轉自:Go 大神 / 蝸牛
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/8Ec31TFWSGj1BLlmBXyYtA