微服務面試題目

作者 Aaron Cao · 更新於

微服務面試題目
微服務面試考的是服務邊界劃分、通訊方式選擇、資料一致性與故障處理,而不是框架的瑣碎細節。你會被要求拆解單體架構、在同步呼叫與非同步訊息之間做出取捨、說明如何確保跨服務資料正確,並完整追蹤一次請求的來龍去脈。

微服務面試考的是服務邊界劃分、通訊方式選擇、資料一致性與故障處理,而不是框架的瑣碎細節。你會被要求拆解單體架構、在同步呼叫與非同步訊息之間做出取捨、說明如何確保跨服務資料正確,並完整追蹤一次請求的來龍去脈。

微服務面試到底在考什麼?

你讀過各種模式的名稱,也能背出斷路器的作用,卻還是抓不到面試官到底在聽什麼。這一節說明面試官實際評分的四個面向,依照他們通常探詢的順序排列。每一項看似在考詞彙,實際上考的是判斷力。

  • 拆解方式。你會從哪裡切分,為什麼選在那裡?面試官希望邊界是沿著業務能力或資料所有權劃分,而不是按技術分層切。
  • 通訊方式。同步請求/回應,還是非同步事件,各自會在什麼情況下出問題?他們要的答案是取捨分析,不是單純的偏好。
  • 資料。每個服務各自一個資料庫,代表不能跨服務做 join,也沒有分散式交易。那要怎麼確保系統仍然正確?
  • 維運。部署、版本管理、追蹤,以及當某個服務變慢而非直接掛掉時,凌晨三點該怎麼辦。

注意這些都與框架無關。能說清楚為什麼把結帳與庫存拆開的應試者,永遠會比只會列出註解標籤的人拿到更高分。

最常出現的拆解與通訊問題有哪些?

這些是大多數微服務面試回合開場常見的題目,底下附上面試官實際在檢驗什麼。

  • 你會怎麼把這個單體架構拆成多個服務?檢驗你是沿著業務能力與資料所有權切分,還是照 controllerservicerepository 這種分層切。後者切出來的仍是分散式單體。
  • 兩個服務之間要怎麼溝通?檢驗你能不能說出每種選擇的代價:同步呼叫給你簡單的心智模型,但會把可用性綁在一起;非同步事件能解耦可用性,但要能跟產品負責人解釋最終一致性。
  • 什麼是分散式單體,又要怎麼避免?檢驗你是否知道必須一起部署的服務,其實稱不上真正分開。
  • 一個服務該多大?檢驗你不會被誘導講出一個數字。大小應該跟著邊界與擁有它的團隊走。
  • 需要 API 閘道嗎?它的作用是什麼?檢驗你能不能把路由、身分驗證與流量限制從商業邏輯中分離出來。
  • 服務之間要怎麼互相找到彼此?檢驗你對服務探索的基本掌握,以及為什麼寫死主機位址在規模化環境中行不通。

每個答案都要把取捨大聲說出來。面試官沒辦法為你只在腦中默默做過的比較給分。

資料與失效相關的問題該怎麼回答?

面試真正的勝負關鍵就在這裡,因為這些問題沒有乾淨俐落的答案,應試者卻往往只想搬出背好的說法。

  • 你要怎麼確保跨服務的資料一致性?先講清楚限制條件:沒有跨服務交易這回事。接著描述一個 saga,可以是透過事件編排,也可以是由協調者統籌,並且明確說出系統是最終一致的,以及使用者在這段落差期間會看到什麼。
  • 下游服務變慢時會發生什麼事?逾時、帶退避的重試,以及斷路器,避免變慢的依賴耗盡你的執行緒池。變慢比直接掛掉更糟,能講出這點代表你有實戰經驗。
  • 要怎麼讓重試是安全的?冪等性。在寫入路徑加上冪等鍵,讓重複送出的付款請求只會扣款一次。
  • 多步驟流程中發生部分失敗時要怎麼處理?用補償動作,而不是回滾。說明退款或釋放預訂會是什麼樣子。
  • 怎麼除錯一個經過六個服務的請求?用分散式追蹤,讓關聯 ID 一路傳遞到每一站,再搭配結構化日誌與指標。

一位應徵公有雲廠商 L5 平台職缺的後端工程師,被問到 saga 問題時一口氣答完,用的全是模式詞彙,卻完全沒提到客戶會看到什麼。真正決定這一輪成敗的追問,是訂單頁面在不一致的那段時間會顯示什麼。要準備的是第二個答案,而不只是第一個。

更多依角色與主題整理的題庫,收錄在依角色分類的面試問題

要怎麼開口練習這些問題?

讀完這份清單會讓你產生「我認得這個」的感覺,但這種感覺一旦換成陌生人開口發問、然後等你回答,就會瞬間消失。知道一個模式和在輕微壓力下把它講清楚之間的落差,正是系統設計面試最難的地方,而這個落差只能靠開口說話來補上。

挑一個你熟悉的流程,例如下單或註冊,然後大聲把完整的拆解過程講出來:邊界在哪、通訊方式怎麼選、一致性怎麼說、失敗情境怎麼說。一直練到你不再重講開頭的句子為止。你可以在模擬面試模式中,對著會追問、也能讓你用語音回答的 AI 面試官練習這些提示,這比重看筆記更接近真實情境。

SubcueAI 創辦人 Aaron Cao 打造這個練習模式時,關注的正是這個落差,而不是內容本身的呈現方式。題目清單到處都找得到,應試者真正缺的是在有人等待的情況下,反覆把答案講出來的練習。在真正的面試中,桌面應用程式與瀏覽器擴充功能的側邊欄可以在面試官說話時,同步顯示結構化的提示,不過練熟的說法永遠勝過第一次現讀的內容。這個助手會做什麼、不會做什麼,說明都在產品總覽頁面。

常見問題

微服務面試題目應該準備多少題?

把一個流程準備得夠深入,勝過死背三十個問題。只要你能拆解單一系統、說明通訊方式的取捨、解釋一致性模型,並描述部分失敗時會出什麼狀況,就能回答面試官問的大多數變化題。

微服務面試需要懂 Kubernetes 嗎?

對大多數後端職缺來說,你需要說明部署與擴展需要提供什麼,而不是真的去操作叢集。平台與 SRE 職缺則不同,確實會更深入編排、服務網格與上線策略。

這類面試最常見的錯誤是什麼?

按技術分層而不是依業務能力切分,導致服務之間必須綁在一起部署。第二常見的錯誤,是描述 saga 時卻從未提到系統會變成最終一致。

微服務問題是在程式設計回合還是系統設計回合出現?

多半出現在設計回合,以及詢問你負責過哪個系統的資深行為面試回合。程式設計回合則專注在演算法與語言熟練度,不過帶回家做的作業題,可能會要求你在既有服務群中新增一個服務。

面試當下,AI 助手可以幫我即時回答這些問題嗎?

它可以在面試官說話時同步呈現結構化重點,這在你已經熟悉內容時最有幫助。但它無法取代反覆練習,而且螢幕分享、錄影面試、有監考的測驗,以及公司配發的電腦,都不在它的使用範圍內。

相關問題

← 更多關於 依職位與主題分類的面試問題