微服務(wù)是一個(gè)新的應(yīng)用平臺(tái),微服務(wù)的獨(dú)特之處就是可以獨(dú)立部署和管理,一旦實(shí)現(xiàn)應(yīng)用,它們與底層的操作系統(tǒng)交互就會(huì)很少了,因此,小編建議在我們學(xué)習(xí)的時(shí)候一定給重視一下微服務(wù),了解并參透才好,這套微服務(wù)相關(guān)的面試題希望可以幫助到大家在職業(yè)的道路上減輕你的負(fù)擔(dān):

Q1. 說(shuō)說(shuō)微服務(wù)架構(gòu)的優(yōu)勢(shì)。
優(yōu)勢(shì)
|
說(shuō)明
|
獨(dú)立開(kāi)發(fā)
|
所有微服務(wù)都可以根據(jù)各自的功能輕松開(kāi)發(fā)
|
獨(dú)立部署
|
根據(jù)他們所提供的服務(wù),可以在任何應(yīng)用中單獨(dú)部署
|
故障隔離
|
即使應(yīng)用中的一個(gè)服務(wù)不起作用,系統(tǒng)仍然繼續(xù)運(yùn)行
|
混合技術(shù)棧
|
可以用不同的語(yǔ)言和技術(shù)來(lái)構(gòu)建同一應(yīng)用程序的不同服務(wù)
|
粒度縮放
|
各個(gè)組件可根據(jù)需要進(jìn)行擴(kuò)展,無(wú)需將所有組件融合到一起
|
Q2. 你對(duì)微服務(wù)是怎么理解的?
- 微服務(wù),又名微服務(wù)架構(gòu),是一種架構(gòu)風(fēng)格,它將應(yīng)用構(gòu)建為一個(gè)小型自治服務(wù)的集合,以業(yè)務(wù)領(lǐng)域?yàn)槟P汀?/li>
- 通俗地說(shuō),就像蜜蜂通過(guò)對(duì)蠟制的等邊六角形單元來(lái)構(gòu)建它們的蜂巢。
- 他們最初從使用各種材料的小單元開(kāi)始,一點(diǎn)點(diǎn)的搭建出一個(gè)大型蜂巢。
- 這些小單元組成堅(jiān)固的結(jié)構(gòu),將蜂窩的特定部分固定在一起。
- 這里,每個(gè)小單元都獨(dú)立于另一個(gè),但它也與其他小單元相關(guān)。
- 這意味著對(duì)一個(gè)小單元的損害不會(huì)損害其他的單元,因此,蜜蜂可以在不影響完整蜂巢的情況下重建這些單元。
Q3. 微服務(wù)有哪些特點(diǎn)?
- 解耦(Decoupling) - 系統(tǒng)內(nèi)的服務(wù)很大程度上是分離的。因此整個(gè)應(yīng)用可以被輕松構(gòu)建、修改和擴(kuò)展
- 組件化(Componentization) - 微服務(wù)被視為可以被輕松替換和升級(jí)的獨(dú)立組件
- 業(yè)務(wù)能力(Business Capabilities) - 微服務(wù)非常簡(jiǎn)單,專(zhuān)注于單一功能
- 自治(Autonomy) - 開(kāi)發(fā)人員和團(tuán)隊(duì)可以相互獨(dú)立工作,從而提高效率
- 持續(xù)交付(ContinousDelivery) - 允許頻繁發(fā)版,通過(guò)系統(tǒng)自動(dòng)化完成對(duì)軟件的創(chuàng)建、測(cè)試和審核,
- 責(zé)任(Responsibility) - 微服務(wù)不把程序作為項(xiàng)目去關(guān)注。相反,他們將程序視為自己負(fù)責(zé)的產(chǎn)品
- 分散治理(Decentralized Governance) - 重點(diǎn)是用正確的工具去做正確的事。這意味著沒(méi)有任何標(biāo)準(zhǔn)化模式或著技術(shù)模式。開(kāi)發(fā)人員可以自由選擇最合適的工具來(lái)解決自己的問(wèn)題
- 敏捷性(Agility) - 微服務(wù)支持敏捷開(kāi)發(fā)。任何新功能都可以快速開(kāi)發(fā)并被再次丟棄
Q4. 設(shè)計(jì)微服務(wù)的最佳實(shí)踐是什么?
以下是設(shè)計(jì)微服務(wù)的最佳實(shí)踐:
- 為每個(gè)微服務(wù)分開(kāi)數(shù)據(jù)存儲(chǔ)
- 將代碼保持在類(lèi)似的成熟度等級(jí)上
- 為每個(gè)微服務(wù)進(jìn)行單獨(dú)的構(gòu)建
- 部署到容器中
- 將服務(wù)器視為無(wú)狀態(tài)的
Q5. 微服務(wù)架構(gòu)是如何運(yùn)作的?
微服務(wù)架構(gòu)具有以下組件:
- Clients – 來(lái)自不同設(shè)備的不同用戶(hù)發(fā)送請(qǐng)求。
- Identity Providers – 對(duì)用戶(hù)或客戶(hù)端身份進(jìn)行身份驗(yàn)證,并頒發(fā)安全令牌。
- API Gateway – 處理客戶(hù)端請(qǐng)求。
- Static Content – 容納系統(tǒng)的所有內(nèi)容。
- Management – 平衡節(jié)點(diǎn)上的服務(wù)壓力并識(shí)別故障。
- Service Discovery – 用于找到微服務(wù)之間通信路徑的向?qū)А?/li>
- Content Delivery Networks – 代理服務(wù)器及其數(shù)據(jù)中心的分布式網(wǎng)絡(luò)。
- Remote Service – 啟用駐留在 IT 設(shè)備網(wǎng)絡(luò)上的遠(yuǎn)程訪問(wèn)信息。
Q6. 在使用微服務(wù)架構(gòu)時(shí),你面臨的挑戰(zhàn)是什么?
開(kāi)發(fā)較小的微服務(wù)聽(tīng)起來(lái)很容易,但在開(kāi)發(fā)時(shí)會(huì)經(jīng)常遇到一些挑戰(zhàn)。
- 自動(dòng)化組件:難以自動(dòng)化,因?yàn)橛性S多較小的組件。對(duì)于每個(gè)組件,都必須采取構(gòu)建、發(fā)布和監(jiān)控的步驟。
- 可感知性:將大量組件維持在一起會(huì)帶來(lái)難以部署、維護(hù)、監(jiān)控和識(shí)別的問(wèn)題。它需要在所有組件周?chē)哂泻芎玫母兄芰Α?/li>
- 配置管理:有時(shí)在各種環(huán)境中維護(hù)組件的配置會(huì)很困難。
- 調(diào)試:很難找到與產(chǎn)生的錯(cuò)誤相關(guān)的每一項(xiàng)服務(wù)。維護(hù)一個(gè)集中式的日志和控制面板對(duì)調(diào)試問(wèn)題至關(guān)重要。
以上就是“六個(gè)需要熟知的微服務(wù)面試題”,你能回答上來(lái)嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。