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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

【Java面试系列】Java微服务面试题

發(fā)布時(shí)間:2023/12/31 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java面试系列】Java微服务面试题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

熱門系列:

  • 【Java面試系列】2020年最新最全java面試題大全及答案解析

  • 【SpringCloud微服務(wù)系列】SpringCloud組件原理:Eureka,Feign,Ribbon,Hystrix,Zuul

  • 【SpringCloud微服務(wù)系列】Hystrix熔斷器底層原理,一看就廢

  • ??程序人生,精彩搶先看


目錄

1.微服務(wù) 面試題

2.微服務(wù) 面試題解析

? ??1、您對(duì)微服務(wù)有何了解?

? ??2、微服務(wù)架構(gòu)有哪些優(yōu)勢(shì)?

? ??3、微服務(wù)有哪些特點(diǎn)?

? ??4、設(shè)計(jì)微服務(wù)的最佳實(shí)踐是什么?

? ??5、微服務(wù)架構(gòu)如何運(yùn)作?

? ??6、微服務(wù)架構(gòu)的優(yōu)缺點(diǎn)是什么?

? ??7、單片,SOA 和微服務(wù)架構(gòu)有什么區(qū)別?

? ??8、在使用微服務(wù)架構(gòu)時(shí),您面臨哪些挑戰(zhàn)?

? ??9、SOA 和微服務(wù)架構(gòu)之間的主要區(qū)別是什么?

? ??10、微服務(wù)有什么特點(diǎn)?

? ??11、什么是領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)?

? ??12、為什么需要域驅(qū)動(dòng)設(shè)計(jì)(DDD)?

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

? ??14、什么是凝聚力?

? ??15、什么是耦合?

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

? ??17、你對(duì) Spring Boot 有什么了解?

? ??18、什么是 Spring 引導(dǎo)的執(zhí)行器?

? ??19、什么是 Spring Cloud?

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

? ??21、在 Spring MVC 應(yīng)用程序中使用 WebMvcTest 注釋有什么用處?

? ??22、你能否給出關(guān)于微服務(wù)的要點(diǎn)?

? ??23、什么是不同類型的微服務(wù)測(cè)試?

? ??24、您對(duì) Distributed Transaction 有何了解?

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

? ??26、什么是有界上下文?

? ??27、什么是雙因素身份驗(yàn)證?

? ??28、雙因素身份驗(yàn)證的憑據(jù)類型有哪些?

? ??29、什么是客戶證書?

? ??30、PACT 在微服務(wù)架構(gòu)中的用途是什么?

? ??31、什么是 OAuth?

? ??32、康威定律是什么?

? ??33、合同測(cè)試你懂什么?

? ??34、什么是端到端微服務(wù)測(cè)試?

? ??35、Container 在微服務(wù)中的用途是什么?

? ??36、什么是微服務(wù)架構(gòu)中的 DRY?

? ??37、什么是消費(fèi)者驅(qū)動(dòng)的合同(CDC)?

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

? ??39、您對(duì)微服務(wù)架構(gòu)中的語義監(jiān)控有何了解?

? ??40、我們?nèi)绾芜M(jìn)行跨功能測(cè)試?

? ??41、我們?nèi)绾卧跍y(cè)試中消除非決定論?

? ??42、Mock 或 Stub 有什么區(qū)別?

? ??43、您對(duì) Mike Cohn 的測(cè)試金字塔了解多少?

? ??44、Docker 的目的是什么?

? ??45、什么是金絲雀釋放?

? ??46、什么是持續(xù)集成(CI)?

? ??47、什么是持續(xù)監(jiān)測(cè)?

? ??48、架構(gòu)師在微服務(wù)架構(gòu)中的角色是什么?

? ??49、我們可以用微服務(wù)創(chuàng)建狀態(tài)機(jī)嗎?

? ??50、什么是微服務(wù)中的反應(yīng)性擴(kuò)展?


1.微服務(wù) 面試題

1、您對(duì)微服務(wù)有何了解?

2、微服務(wù)架構(gòu)有哪些優(yōu)勢(shì)?

3。微服務(wù)有哪些特點(diǎn)?

4、設(shè)計(jì)微服務(wù)的最佳實(shí)踐是什么?

5、微服務(wù)架構(gòu)如何運(yùn)作?

6、微服務(wù)架構(gòu)的優(yōu)缺點(diǎn)是什么?

7、單片,SOA 和微服務(wù)架構(gòu)有什么區(qū)別?

8、在使用微服務(wù)架構(gòu)時(shí),您面臨哪些挑戰(zhàn)?

9、SOA 和微服務(wù)架構(gòu)之間的主要區(qū)別是什么?

10、微服務(wù)有什么特點(diǎn)?

11、什么是領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)?

12、為什么需要域驅(qū)動(dòng)設(shè)計(jì)(DDD)?

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

14、什么是凝聚力?

15、什么是耦合?

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

17、你對(duì) Spring Boot 有什么了解?

18、什么是 Spring 引導(dǎo)的執(zhí)行器?

19、什么是 Spring Cloud?

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

21、在 Spring MVC 應(yīng)用程序中使用 WebMvcTest 注釋有什么用處?

22。你能否給出關(guān)于休息和微服務(wù)的要點(diǎn)?

23、什么是不同類型的微服務(wù)測(cè)試?

24、您對(duì) Distributed Transaction 有何了解?

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

26、什么是有界上下文?

27、什么是雙因素身份驗(yàn)證?

28、雙因素身份驗(yàn)證的憑據(jù)類型有哪些?

29、什么是客戶證書?

30、PACT 在微服務(wù)架構(gòu)中的用途是什么?

31、什么是 OAuth?

32、康威定律是什么?

33、合同測(cè)試你懂什么?

34、什么是端到端微服務(wù)測(cè)試?

35、Container 在微服務(wù)中的用途是什么?

36、什么是微服務(wù)架構(gòu)中的 DRY?

37、什么是消費(fèi)者驅(qū)動(dòng)的合同(CDC)?

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

39、您對(duì)微服務(wù)架構(gòu)中的語義監(jiān)控有何了解?

40、我們?nèi)绾芜M(jìn)行跨功能測(cè)試?

41、我們?nèi)绾卧跍y(cè)試中消除非決定論?

42、Mock 或 Stub 有什么區(qū)別?

43、您對(duì) Mike Cohn 的測(cè)試金字塔了解多少?

44、Docker 的目的是什么?

45、什么是金絲雀釋放?

46、什么是持續(xù)集成(CI)?

47、什么是持續(xù)監(jiān)測(cè)?

48、架構(gòu)師在微服務(wù)架構(gòu)中的角色是什么?

49、我們可以用微服務(wù)創(chuàng)建狀態(tài)機(jī)嗎?

50、什么是微服務(wù)中的反應(yīng)性擴(kuò)展?


2.微服務(wù) 面試題解析

1、您對(duì)微服務(wù)有何了解?

微服務(wù),又稱微服務(wù) 架 構(gòu),是一種架構(gòu)風(fēng)格,它將應(yīng)用程序構(gòu)建為以業(yè)務(wù)領(lǐng)域?yàn)槟P偷男⌒妥灾畏?wù)集合 。

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

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

請(qǐng)參考上圖。這里,每個(gè)六邊形形狀代表單獨(dú)的服務(wù)組件。與蜜蜂的工作類似,每個(gè)敏捷團(tuán)隊(duì)都使用可用的框架和所選的技術(shù)堆棧構(gòu)建單獨(dú)的服務(wù)組件。就像在蜂箱中一樣,每個(gè)服務(wù)組件形成一個(gè)強(qiáng)大的微服務(wù)架構(gòu),以提供更好的可擴(kuò)展性。此外,敏捷團(tuán)隊(duì)可以單獨(dú)處理每個(gè)服務(wù)組件的問題,而對(duì)整個(gè)應(yīng)用程序沒有影響或影響最小。

?

2、微服務(wù)架構(gòu)有哪些優(yōu)勢(shì)?

圖 2:微服務(wù)的 優(yōu)點(diǎn) – 微服務(wù)訪談問題

· 獨(dú)立開發(fā) – 所有微服務(wù)都可以根據(jù)各自的功能輕松開發(fā)

· 獨(dú)立部署 – 基于其服務(wù),可以在任何應(yīng)用程序中單獨(dú)部署它們

· 故障隔離 – 即使應(yīng)用程序的一項(xiàng)服務(wù)不起作用,系統(tǒng)仍可繼續(xù)運(yùn)行

· 混合技術(shù)堆棧 – 可以使用不同的語言和技術(shù)來構(gòu)建同一應(yīng)用程序的不同服務(wù)

· 粒度縮放 – 單個(gè)組件可根據(jù)需要進(jìn)行縮放,無需將所有組件縮放在一起

?

3、微服務(wù)有哪些特點(diǎn)?

圖 3:微服務(wù)的 特點(diǎn) – 微服務(wù)訪談問題

· 解耦 – 系統(tǒng)內(nèi)的服務(wù)很大程度上是分離的。因此,整個(gè)應(yīng)用程序可以輕松構(gòu)建,更改和擴(kuò)展

· 組件化 – 微服務(wù)被視為可以輕松更換和升級(jí)的獨(dú)立組件

· 業(yè)務(wù)能力 – 微服務(wù)非常簡(jiǎn)單,專注于單一功能

· 自治 – 開發(fā)人員和團(tuán)隊(duì)可以彼此獨(dú)立工作,從而提高速度

· 持續(xù)交付 – 通過軟件創(chuàng)建,測(cè)試和批準(zhǔn)的系統(tǒng)自動(dòng)化,允許頻繁發(fā)布軟件

· 責(zé)任 – 微服務(wù)不關(guān)注應(yīng)用程序作為項(xiàng)目。相反,他們將應(yīng)用程序視為他們負(fù)責(zé)的產(chǎn)品

· 分散治理 – 重點(diǎn)是使用正確的工具來做正確的工作。這意味著沒有標(biāo)準(zhǔn)化模式或任何技術(shù)模式。開發(fā)人員可以自由選擇最有用的工具來解決他們的問題

· 敏捷 – 微服務(wù)支持敏捷開發(fā)。任何新功能都可以快速開發(fā)并再次丟棄

?

4、設(shè)計(jì)微服務(wù)的最佳實(shí)踐是什么?

以下是設(shè)計(jì)微服務(wù)的最佳實(shí)踐:

圖 4:設(shè)計(jì)微服務(wù)的最佳實(shí)踐 – 微服務(wù)訪談問題

?

5、微服務(wù)架構(gòu)如何運(yùn)作?

微服務(wù)架構(gòu)具有以下組件:

圖 5:微服務(wù) 架構(gòu) – 微服務(wù)面試問題

· 客戶端 – 來自不同設(shè)備的不同用戶發(fā)送請(qǐng)求。

· 身份提供商 – 驗(yàn)證用戶或客戶身份并頒發(fā)安全令牌。

· API 網(wǎng)關(guān) – 處理客戶端請(qǐng)求。

· 靜態(tài)內(nèi)容 – 容納系統(tǒng)的所有內(nèi)容。

· 管理 – 在節(jié)點(diǎn)上平衡服務(wù)并識(shí)別故障。

· 服務(wù)發(fā)現(xiàn) – 查找微服務(wù)之間通信路徑的指南。

· 內(nèi)容交付網(wǎng)絡(luò) – 代理服務(wù)器及其數(shù)據(jù)中心的分布式網(wǎng)絡(luò)。

· 遠(yuǎn)程服務(wù) – 啟用駐留在 IT 設(shè)備網(wǎng)絡(luò)上的遠(yuǎn)程訪問信息。

?

6、微服務(wù)架構(gòu)的優(yōu)缺點(diǎn)是什么?

?

7、單片,SOA 和微服務(wù)架構(gòu)有什么區(qū)別?

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

· 單片架構(gòu)類似于大容器,其中應(yīng)用程序的所有軟件組件組裝在一起并緊密封裝。

· 一個(gè)面向服務(wù)的架構(gòu)是一種相互通信服務(wù)的集合。通信可以涉及簡(jiǎn)單的數(shù)據(jù)傳遞,也可以涉及兩個(gè)或多個(gè)協(xié)調(diào)某些活動(dòng)的服務(wù)。

· 微服務(wù)架構(gòu)是一種架構(gòu)風(fēng)格,它將應(yīng)用程序構(gòu)建為以業(yè)務(wù)域?yàn)槟P偷男⌒妥灾畏?wù)集合。

?

8、在使用微服務(wù)架構(gòu)時(shí),您面臨哪些挑戰(zhàn)?

開發(fā)一些較小的微服務(wù)聽起來很容易,但開發(fā)它們時(shí)經(jīng)常遇到的挑戰(zhàn)如下。

· 自動(dòng)化組件:難以自動(dòng)化,因?yàn)橛性S多較小的組件。因此,對(duì)于每個(gè)組件,我們必須遵循 Build,Deploy 和 Monitor 的各個(gè)階段。

· 易感性:將大量組件維護(hù)在一起變得難以部署,維護(hù),監(jiān)控和識(shí)別問題。它需要在所有組件周圍具有很好的感知能力。

· 配置管理:有時(shí)在各種環(huán)境中維護(hù)組件的配置變得困難。

· 調(diào)試:很難找到錯(cuò)誤的每一項(xiàng)服務(wù)。維護(hù)集中式日志記錄和儀表板以調(diào)試問題至關(guān)重要。

?

9、SOA 和微服務(wù)架構(gòu)之間的主要區(qū)別是什么?

SOA 和微服務(wù)之間的主要區(qū)別如下:

?

10、微服務(wù)有什么特點(diǎn)?

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

圖 7:微服務(wù)的特征 – 微服務(wù)訪談問題

?

11、什么是領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)?

圖 8: DDD 原理 – 微服務(wù)面試問題

?

12、為什么需要域驅(qū)動(dòng)設(shè)計(jì)(DDD)?

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

?

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

如果您必須定義泛在語言(UL),那么它是特定域的開發(fā)人員和用戶使用的通用語言,通過該語言可以輕松解釋域。

無處不在的語言必須非常清晰,以便它將所有團(tuán)隊(duì)成員放在同一頁(yè)面上,并以機(jī)器可以理解的方式進(jìn)行翻譯。

?

14、什么是凝聚力?

模塊內(nèi)部元素所屬的程度被認(rèn)為是凝聚力。

?

15、什么是耦合?

組件之間依賴關(guān)系強(qiáng)度的度量被認(rèn)為是耦合。一個(gè)好的設(shè)計(jì)總是被認(rèn)為具有高內(nèi)聚力和低耦合性。

?

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

Representational State Transfer(REST)/ RESTful Web 服務(wù)是一種幫助計(jì)算機(jī)系統(tǒng)通過 Internet 進(jìn)行通信的架構(gòu)風(fēng)格。這使得微服務(wù)更容易理解和實(shí)現(xiàn)。

微服務(wù)可以使用或不使用 RESTful API 實(shí)現(xiàn),但使用 RESTful API 構(gòu)建松散耦合的微服務(wù)總是更容易。

?

17、你對(duì) Spring Boot 有什么了解?

事實(shí)上,隨著新功能的增加,彈簧變得越來越復(fù)雜。如果必須啟動(dòng)新的 spring 項(xiàng)目,則必須添加構(gòu)建路徑或添加 maven 依賴項(xiàng),配置應(yīng)用程序服務(wù)器,添加 spring配置。所以一切都必須從頭開始。

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

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

?

18、什么是 Spring 引導(dǎo)的執(zhí)行器?

Spring Boot 執(zhí)行程序提供了 restful Web 服務(wù),以訪問生產(chǎn)環(huán)境中運(yùn)行應(yīng)用程序的當(dāng)前狀態(tài)。在執(zhí)行器的幫助下,您可以檢查各種指標(biāo)并監(jiān)控您的應(yīng)用程序。

?

19、什么是 Spring Cloud?

根據(jù) Spring Cloud 的官方網(wǎng)站,Spring Cloud 為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智能路由,領(lǐng)導(dǎo)選舉,分布式會(huì)話,集群狀態(tài))。

?

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

在使用 Spring Boot 開發(fā)分布式微服務(wù)時(shí),我們面臨的問題很少由 Spring Cloud解決。

· 與分布式系統(tǒng)相關(guān)的復(fù)雜性 – 包括網(wǎng)絡(luò)問題,延遲開銷,帶寬問題,安全問題。

· 處理服務(wù)發(fā)現(xiàn)的能力 – 服務(wù)發(fā)現(xiàn)允許集群中的進(jìn)程和服務(wù)找到彼此并進(jìn)行通信。

· 解決冗余問題 – 冗余問題經(jīng)常發(fā)生在分布式系統(tǒng)中。

· 負(fù)載平衡 – 改進(jìn)跨多個(gè)計(jì)算資源(例如計(jì)算機(jī)集群,網(wǎng)絡(luò)鏈接,中央處理單元)的工作負(fù)載分布。

· 減少性能問題 – 減少因各種操作開銷導(dǎo)致的性能問題。

?

21、在 Spring MVC 應(yīng)用程序中使用 WebMvcTest 注釋有什么用處?

在測(cè)試目標(biāo)只關(guān)注 Spring MVC 組件的情況下,WebMvcTest 注釋用于單元測(cè)試Spring MVC 應(yīng)用程序。在上面顯示的快照中,我們只想啟動(dòng) ToTestController。執(zhí)行此單元測(cè)試時(shí),不會(huì)啟動(dòng)所有其他控制器和映射。

?

22、你能否給出關(guān)于微服務(wù)的要點(diǎn)?

雖然您可以通過多種方式實(shí)現(xiàn)微服務(wù),但 REST over HTTP 是實(shí)現(xiàn)微服務(wù)的一種方式。REST 還可用于其他應(yīng)用程序,如 Web 應(yīng)用程序,API 設(shè)計(jì)和 MVC 應(yīng)用程序,以提供業(yè)務(wù)數(shù)據(jù)。

微服務(wù)是一種體系結(jié)構(gòu),其中系統(tǒng)的所有組件都被放入單獨(dú)的組件中,這些組件可以單獨(dú)構(gòu)建,部署和擴(kuò)展。微服務(wù)的某些原則和最佳實(shí)踐有助于構(gòu)建彈性應(yīng)用程序。

簡(jiǎn)而言之,您可以說 REST 是構(gòu)建微服務(wù)的媒介。

?

23、什么是不同類型的微服務(wù)測(cè)試?

在使用微服務(wù)時(shí),由于有多個(gè)微服務(wù)協(xié)同工作,測(cè)試變得非常復(fù)雜。因此,測(cè)試分為不同的級(jí)別。

· 在底層,我們有面向技術(shù)的測(cè)試,如單元測(cè)試和性能測(cè)試。這些是完全自動(dòng)化的。

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

· 在頂層, 我們的 驗(yàn)收測(cè)試數(shù)量很少。這些驗(yàn)收測(cè)試有助于利益相關(guān)者理解和驗(yàn)證軟件功能。

?

24、您對(duì) Distributed Transaction 有何了解?

分布式事務(wù)是指單個(gè)事件導(dǎo)致兩個(gè)或多個(gè)不能以原子方式提交的單獨(dú)數(shù)據(jù)源的突變的任何情況。在微服務(wù)的世界中,它變得更加復(fù)雜,因?yàn)槊總€(gè)服務(wù)都是一個(gè)工作單元,并且大多數(shù)時(shí)候多個(gè)服務(wù)必須協(xié)同工作才能使業(yè)務(wù)成功。

?

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

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

用法:在遠(yuǎn)程服務(wù)或數(shù)據(jù)源中使用 Idempotence,這樣當(dāng)它多次接收指令時(shí),它只處理指令一次。

?

26、什么是有界上下文?

有界上下文是域驅(qū)動(dòng)設(shè)計(jì)的核心模式。DDD 戰(zhàn)略設(shè)計(jì)部門的重點(diǎn)是處理大型模型和團(tuán)隊(duì)。DDD 通過將大型模型劃分為不同的有界上下文并明確其相互關(guān)系來處理大型模型。

?

27、什么是雙因素身份驗(yàn)證?

雙因素身份驗(yàn)證為帳戶登錄過程啟用第二級(jí)身份驗(yàn)證。

圖 11: 雙因素認(rèn)證的表示 – 微服務(wù)訪談問題

因此,假設(shè)用戶必須只輸入用戶名和密碼,那么這被認(rèn)為是單因素身份驗(yàn)證。

?

28、雙因素身份驗(yàn)證的憑據(jù)類型有哪些?

這三種憑證是:

圖 12: 雙因素認(rèn)證的證書類型 – 微服務(wù)面試問題

?

29、什么是客戶證書?

客戶端系統(tǒng)用于向遠(yuǎn)程服務(wù)器發(fā)出經(jīng)過身份驗(yàn)證的請(qǐng)求的一種數(shù)字證書稱為客戶端證書。客戶端證書在許多相互認(rèn)證設(shè)計(jì)中起著非常重要的作用,為請(qǐng)求者的身份提供了強(qiáng)有力的保證。

?

30、PACT 在微服務(wù)架構(gòu)中的用途是什么?

PACT 是一個(gè)開源工具,允許測(cè)試服務(wù)提供者和消費(fèi)者之間的交互,與合同隔離,從而提高微服務(wù)集成的可靠性。

微服務(wù)中的用法

· 用于在微服務(wù)中實(shí)現(xiàn)消費(fèi)者驅(qū)動(dòng)的合同。

· 測(cè)試微服務(wù)的消費(fèi)者和提供者之間的消費(fèi)者驅(qū)動(dòng)的合同。

查看即將到來的批次

?

31、什么是 OAuth?

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

?

32、康威定律是什么?

“任 何 設(shè) 計(jì) 系 統(tǒng) 的 組 織 ( 廣 泛 定 義 ) 都 將 產(chǎn) 生 一 種 設(shè) 計(jì) , 其 結(jié) 構(gòu) 是 組 織 通 信 結(jié) 構(gòu)的 副 本 。” – Mel Conway

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

該法律基本上試圖傳達(dá)這樣一個(gè)事實(shí):為了使軟件模塊起作用,整個(gè)團(tuán)隊(duì)?wèi)?yīng)該進(jìn)行良好的溝通。因此,系統(tǒng)的結(jié)構(gòu)反映了產(chǎn)生它的組織的社會(huì)邊界。

?

33、合同測(cè)試你懂什么?

根據(jù) Martin Flower 的說法,合同測(cè)試是在外部服務(wù)邊界進(jìn)行的測(cè)試,用于驗(yàn)證其是否符合消費(fèi)服務(wù)預(yù)期的合同。

此外,合同測(cè)試不會(huì)深入測(cè)試服務(wù)的行為。更確切地說,它測(cè)試該服務(wù)調(diào)用的輸入&輸出包含所需的屬性和所述響應(yīng)延遲,吞吐量是允許的限度內(nèi)。

?

34、什么是端到端微服務(wù)測(cè)試?

端到端測(cè)試驗(yàn)證了工作流中的每個(gè)流程都正常運(yùn)行。這可確保系統(tǒng)作為一個(gè)整體協(xié)同工作并滿足所有要求。

通俗地說,你可以說端到端測(cè)試是一種測(cè)試,在特定時(shí)期后測(cè)試所有東西。

圖 14:測(cè)試層次 – 微服務(wù)面試問題

?

35、Container 在微服務(wù)中的用途是什么?

容器是管理基于微服務(wù)的應(yīng)用程序以便單獨(dú)開發(fā)和部署它們的好方法。您可以將微服務(wù)封裝在容器映像及其依賴項(xiàng)中,然后可以使用它來滾動(dòng)按需實(shí)例的微服務(wù),而無需任何額外的工作。

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

?

36、什么是微服務(wù)架構(gòu)中的 DRY?

DRY 代表不要重復(fù)自己。它基本上促進(jìn)了重用代碼的概念。這導(dǎo)致開發(fā)和共享庫(kù),這反過來導(dǎo)致緊密耦合。

?

37、什么是消費(fèi)者驅(qū)動(dòng)的合同(CDC)?

這基本上是用于開發(fā)微服務(wù)的模式,以便它們可以被外部系統(tǒng)使用。當(dāng)我們處理微服務(wù)時(shí),有一個(gè)特定的提供者構(gòu)建它,并且有一個(gè)或多個(gè)使用微服務(wù)的消費(fèi)者。

通常,提供程序在 XML 文檔中指定接口。但在消費(fèi)者驅(qū)動(dòng)的合同中,每個(gè)服務(wù)消費(fèi)者都傳達(dá)了提供商期望的接口。

?

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

微服務(wù)架構(gòu)基于一個(gè)概念,其中所有服務(wù)應(yīng)該能夠彼此交互以構(gòu)建業(yè)務(wù)功能。因此,要實(shí)現(xiàn)這一點(diǎn),每個(gè)微服務(wù)必須具有接口。這使得 Web API 成為微服務(wù)的一個(gè)非常重要的推動(dòng)者。RESTful API 基于 Web 的開放網(wǎng)絡(luò)原則,為構(gòu)建微服務(wù)架構(gòu)的各個(gè)組件之間的接口提供了最合理的模型。

?

39、您對(duì)微服務(wù)架構(gòu)中的語義監(jiān)控有何了解?

語義監(jiān)控,也稱為 綜合監(jiān)控, 將自動(dòng)化測(cè)試與監(jiān)控應(yīng)用程序相結(jié)合,以檢測(cè)業(yè)務(wù)失敗因素。

?

40、我們?nèi)绾芜M(jìn)行跨功能測(cè)試?

跨功能測(cè)試是對(duì)非功能性需求的驗(yàn)證,即那些無法像普通功能那樣實(shí)現(xiàn)的需求。

?

41、我們?nèi)绾卧跍y(cè)試中消除非決定論?

非確定性測(cè)試(NDT)基本上是不可靠的測(cè)試。所以,有時(shí)可能會(huì)發(fā)生它們通過,顯然有時(shí)它們也可能會(huì)失敗。當(dāng)它們失敗時(shí),它們會(huì)重新運(yùn)行通過。

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

1、 隔離

2、 異步

3、 遠(yuǎn)程服務(wù)

4、 隔離

5、 時(shí)間

6、 資源泄漏

?

42、Mock 或 Stub 有什么區(qū)別?

存根

· 一個(gè)有助于運(yùn)行測(cè)試的虛擬對(duì)象。

· 在某些可以硬編碼的條件下提供固定行為。

· 永遠(yuǎn)不會(huì)測(cè)試存根的任何其他行為。

例如,對(duì)于空堆棧,您可以創(chuàng)建一個(gè)只為 empty()方法 返回 true 的存根。因此,這并不關(guān)心堆棧中是否存在元素。

嘲笑

· 一個(gè)虛擬對(duì)象,其中最初設(shè)置了某些屬性。

· 此對(duì)象的行為取決于 set 屬性。

· 也可以測(cè)試對(duì)象的行為。

例如,對(duì)于 Customer 對(duì)象,您可以通過設(shè)置名稱和年齡來模擬它。您可以將 age設(shè)置為 12,然后測(cè)試 isAdult()方法,該方法將在年齡大于 18 時(shí)返回 true。因此,您的 Mock Customer 對(duì)象適用于指定的條件。

?

43、您對(duì) Mike Cohn 的測(cè)試金字塔了解多少?

Mike Cohn 提供了一個(gè)名為 Test Pyramid 的模型。這描述了軟件開發(fā)所需的自動(dòng)化測(cè)試類型。

圖 16: Mike Cohn 的測(cè)試金字塔 – 微服務(wù)面試問題

根據(jù)金字塔,第一層的測(cè)試數(shù)量應(yīng)該最高。在服務(wù)層,測(cè)試次數(shù)應(yīng)小于單元測(cè)試級(jí)別,但應(yīng)大于端到端級(jí)別。

?

44、Docker 的目的是什么?

Docker 提供了一個(gè)可用于托管任何應(yīng)用程序的容器環(huán)境。在此,軟件應(yīng)用程序和支持它的依賴項(xiàng)緊密打包在一起。

因此,這個(gè)打包的產(chǎn)品被稱為 Container,因?yàn)樗怯?Docker 完成的,所以它被稱為 Docker 容器!

?

45、什么是金絲雀釋放?

Canary Releasing 是一種降低在生產(chǎn)中引入新軟件版本的風(fēng)險(xiǎn)的技術(shù)。這是通過將變更緩慢地推廣到一小部分用戶,然后將其發(fā)布到整個(gè)基礎(chǔ)架構(gòu),即將其提供給每個(gè)人來完成的。

?

46、什么是持續(xù)集成(CI)?

持續(xù)集成(CI)是每次團(tuán)隊(duì)成員提交版本控制更改時(shí)自動(dòng)構(gòu)建和測(cè)試代碼的過程。這鼓勵(lì)開發(fā)人員通過在每個(gè)小任務(wù)完成后將更改合并到共享版本控制存儲(chǔ)庫(kù)來共享代碼和單元測(cè)試。

?

47、什么是持續(xù)監(jiān)測(cè)?

持續(xù)監(jiān)控深入監(jiān)控覆蓋范圍,從瀏覽器內(nèi)前端性能指標(biāo),到應(yīng)用程序性能,再到主機(jī)虛擬化基礎(chǔ)架構(gòu)指標(biāo)。

?

48、架構(gòu)師在微服務(wù)架構(gòu)中的角色是什么?

微服務(wù)架構(gòu)中的架構(gòu)師扮演以下角色:

· 決定整個(gè)軟件系統(tǒng)的布局。

· 幫助確定組件的分區(qū)。因此,他們確保組件相互粘合,但不緊密耦合。

· 與開發(fā)人員共同編寫代碼,了解日常生活中面臨的挑戰(zhàn)。

· 為開發(fā)微服務(wù)的團(tuán)隊(duì)提供某些工具和技術(shù)的建議。

· 提供技術(shù)治理,以便技術(shù)開發(fā)團(tuán)隊(duì)遵循微服務(wù)原則。

?

49、我們可以用微服務(wù)創(chuàng)建狀態(tài)機(jī)嗎?

我們知道擁有自己的數(shù)據(jù)庫(kù)的每個(gè)微服務(wù)都是一個(gè)可獨(dú)立部署的程序單元,這反過來又讓我們可以創(chuàng)建一個(gè)狀態(tài)機(jī)。因此,我們可以為特定的微服務(wù)指定不同的狀態(tài)和事件。

例如,我們可以定義 Order 微服務(wù)。訂單可以具有不同的狀態(tài)。Order 狀態(tài)的轉(zhuǎn)換可以是 Order 微服務(wù)中的獨(dú)立事件。

?

50、什么是微服務(wù)中的反應(yīng)性擴(kuò)展?

Reactive Extensions 也稱為 Rx。這是一種設(shè)計(jì)方法,我們通過調(diào)用多個(gè)服務(wù)來收集結(jié)果,然后編譯組合響應(yīng)。這些調(diào)用可以是同步或異步,阻塞或非阻塞。Rx是分布式系統(tǒng)中非常流行的工具,與傳統(tǒng)流程相反。

?

本內(nèi)容由個(gè)人從參考資料收集而來,可能有不準(zhǔn)確的地方,還請(qǐng)各位多多指正,謝謝!

以下還有更多一線學(xué)習(xí)資料(2T),關(guān)注我的公眾號(hào),免費(fèi)領(lǐng)取,如:

以上資料,都是我個(gè)人平時(shí)收集而來,有網(wǎng)盤存儲(chǔ),長(zhǎng)期有效!有興趣的同學(xué),可以掃碼關(guān)注我的個(gè)人公眾號(hào):時(shí)代名猿,回復(fù)關(guān)鍵字:wyzl?,領(lǐng)取一線資料!

?

?

總結(jié)

以上是生活随笔為你收集整理的【Java面试系列】Java微服务面试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。