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

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