日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

2022年Java秋招面试必看的 | 微服务面试题

發布時間:2023/12/31 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2022年Java秋招面试必看的 | 微服务面试题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

你有了解過Java微服務嗎?知道什么是微服務架構嗎?

微服務架構是一種架構風格和架構思想, 在傳統軟件應用架構的基礎上,將系統業務按照功能拆分為更細的服務。拆分的每一個服務都是一個獨立的應用,這些應用對外提供公共的API,可以獨立承擔對外服務的職責。通過此種思想方式所開發的軟件服務實體就是“微服務”,而圍繞著微服務思想構建的一系列結構,都可以稱之為“微服務架構”。

2022秋招面試資料合集白嫖:大家可以掃二維碼免費領取

小編分享的這份2022年Java秋招備戰面試題總計有1000多道面試題,包含了MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Java 并發編程、Java基礎、Spring、微服務、Linux、Spring Boot 、Spring Cloud、RabbitMQ、kafka等16個專題技術點,都是小編在今年金三銀四總結出來的面試真題,已經有很多粉絲靠這份PDF拿下眾多大廠的offer,今天在這里總結分享給到大家!【持續更新中!】

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

微服務,又稱微服務 架構,是一種架構風格,它將應用程序構建為以業務領域為模型的小型自治服務集合

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

請參考上圖。這里,每個六邊形形狀代表單獨的服務組件。與蜜蜂的工作類似,每個敏捷團隊都使用可用的框架和所選的技術堆棧構建單獨的服務組件。就像在蜂箱中一樣,每個服務組件形成一個強大的微服務架構,以提供更好的可擴展性。此外,敏捷團隊可以單獨處理每個服務組件的問題,而對整個應用程序沒有影響或影響最小。

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

  • 獨立開發 – 所有微服務都可以根據各自的功能輕松開發
  • 獨立部署 – 基于其服務,可以在任何應用程序中單獨部署它們
  • 故障隔離 – 即使應用程序的一項服務不起作用,系統仍可繼續運行
  • 混合技術堆棧 – 可以使用不同的語言和技術來構建同一應用程序的不同服務
  • 粒度縮放 – 單個組件可根據需要進行縮放,無需將所有組件縮放在一起

3、微服務有哪些特點?

  • 解耦 – 系統內的服務很大程度上是分離的。因此,整個應用程序可以輕松構建,更改和擴展
  • 組件化 – 微服務被視為可以輕松更換和升級的獨立組件
  • 業務能力 – 微服務非常簡單,專注于單一功能
  • 自治 – 開發人員和團隊可以彼此獨立工作,從而提高速度
  • 持續交付 – 通過軟件創建,測試和批準的系統自動化,允許頻繁發布軟件
  • 責任 – 微服務不關注應用程序作為項目。相反,他們將應用程序視為他們負責的產品
  • 分散治理 – 重點是使用正確的工具來做正確的工作。這意味著沒有標準化模式或任何技術模式。開發人員可以自由選擇最有用的工具來解決他們的問題
  • 敏捷 – 微服務支持敏捷開發。任何新功能都可以快速開發并再次丟棄

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

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

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

  • 客戶端 – 來自不同設備的不同用戶發送請求。
  • 身份提供商 – 驗證用戶或客戶身份并頒發安全令牌。
  • API 網關 – 處理客戶端請求。
  • 靜態內容 – 容納系統的所有內容。
  • 管理 – 在節點上平衡服務并識別故障。
  • 服務發現 – 查找微服務之間通信路徑的指南。
  • 內容交付網絡 – 代理服務器及其數據中心的分布式網絡。
  • 遠程服務 – 啟用駐留在 IT 設備網絡上的遠程訪問信息。

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

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

  • 單片架構類似于大容器,其中應用程序的所有軟件組件組裝在一起并緊密封裝。
  • 一個面向服務的架構是一種相互通信服務的集合。通信可以涉及簡單的數據傳遞,也可以涉及兩個或多個協調某些活動的服務。
  • 微服務架構是一種架構風格,它將應用程序構建為以業務域為模型的小型自治服務集合。

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

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

  • 自動化組件:難以自動化,因為有許多較小的組件。因此,對于每個組件,我們必須遵循 Build,Deploy 和 Monitor 的各個階段。
  • 易感性:將大量組件維護在一起變得難以部署,維護,監控和識別問題。它需要在所有組件周圍具有很好的感知能力。
  • 配置管理:有時在各種環境中維護組件的配置變得困難。
  • 調試:很難找到錯誤的每一項服務。維護集中式日志記錄和儀表板以調試問題至關重要。

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

10、微服務有什么特點?

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

12、為什么需要域驅動設計(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 可以避免所有樣板代碼和配置。因此,基本上認為自己就好像你正在烘烤蛋糕一樣,春天就像制作蛋糕所需的成分一樣,彈簧靴就是你手中的完整蛋糕。

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

Spring Boot 執行程序提供了 restful Web 服務,以訪問生產環境中運行應用程序的當前狀態。在執行器的幫助下,您可以檢查各種指標并監控您的應用程序。

19、什么是Spring Cloud?

根據 Spring Cloud 的官方網站,Spring Cloud 為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智能路由,領導選舉,分布式會話,集群狀態)。

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

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

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

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

24、您對Distributed Transaction有何了解?

分布式事務是指單個事件導致兩個或多個不能以原子方式提交的單獨數據源的突變的任何情況。在微服務的世界中,它變得更加復雜,因為每個服務都是一個工作單元,并且大多數時候多個服務必須協同工作才能使業務成功。

25、什么是Idempotence以及它在哪里使用?

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

用法:在遠程服務或數據源中使用 Idempotence,這樣當它多次接收指令時,它只處理指令一次。

26、什么是有界上下文?

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

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

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

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

29、什么是客戶證書?

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

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

31、什么是OAuth?

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

32、康威定律是什么?

33、合同測試你懂什么?

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

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

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

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

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

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

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

這基本上是用于開發微服務的模式,以便它們可以被外部系統使用。當我們處理微服務時,有一個特定的提供者構建它,并且有一個或多個使用微服務的消費者。

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

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

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

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

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

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

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

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

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

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

1、 隔離

2、 異步

3、 遠程服務

4、 隔離

5、 時間

6、 資源泄漏

42、Mock或Stub有什么區別?

43、您對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是分布式系統中非常流行的工具,與傳統流程相反。

👇🏻 添加 博主 獲取更多資料👇🏻

總結

以上是生活随笔為你收集整理的2022年Java秋招面试必看的 | 微服务面试题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。