具代表性的面試主題

系統設計面試:設計支援預留與回收的多租戶配額服務

系統設計困難
OfferCC 編輯團隊發佈 更新

題幹

多個產品共享每個租戶的儲存或呼叫額度。請設計一個配額服務,支援預留、提交、釋放與過期回收,並說明並發、故障、跨區域與計費對帳如何處理。

題幹與適用場景

配額服務回答「現在能不能占用這部分資源」,但不負責搬運檔案或執行業務操作。題目考察你能否把額度的權威狀態、暫時預留與最終使用分開,並在共享基礎設施上保持公平。

面試官考察什麼

  • 能否區分速率限制、容量配額、預留與提交。
  • 能否設計不會超賣的並發更新與冪等 API。
  • 能否處理預留過期、呼叫方崩潰、重試與對帳修復。
  • 能否解釋多租戶公平、熱點、跨區域一致性與降級策略。

回答前需要釐清的問題

先確認資源維度(請求次數、位元組、並發工作)、配額範圍(租戶、專案、使用者或端點)、是否有突發額度與層級配額;預留需持續多久;消費是強一致計費還是允許暫時超額;以及跨區域請求能否路由到單一權威區域。

30 秒回答架構

我會把服務建成按資源鍵維護 limit、committed、reserved 的權威狀態機,提供 reserve、commit、release 與查詢介面。預留用條件更新原子檢查剩餘額度,帶冪等 reservation_id 與到期時間;提交把預留轉成實際使用,釋放或逾時則歸還。事件帳本與定期對帳修復漂移,路由與租戶公平策略避免單一熱點拖垮其他租戶。

分步驟深入解答

1. 定義狀態與 API 邊界

配額紀錄包含資源鍵、上限、已提交量、預留量、版本與更新時間。reserve 回傳 reservation_id、可用量與到期時間;commit 只能消費自己的預留;release 可重複呼叫;查詢回傳剩餘額度與更新時間。業務服務在真正寫入資源前預留,成功後提交,失敗或取消時釋放。

2. 保證並發下不超賣

單一資源鍵的變更必須在同一原子交易或線性化儲存操作中完成:只有 committed + reserved + amount <= limit 才能增加預留。冪等鍵重複請求回傳原結果,參數不一致則拒絕。高並發熱點可按租戶或資源分片,但要說清是否允許暫時超額及如何合併。

3. 回收洩漏的預留

呼叫方可能在預留後崩潰,因此記錄到期時間並由掃描器或延遲佇列回收。回收與提交競爭時用狀態條件:已提交不能再釋放,已釋放不能再次提交。回收延遲應納入指標,避免把未及時清理誤認為可用額度。

4. 處理共享池與租戶公平

共享池可同時受全域、租戶與專案層級約束,檢查順序要固定並在一次交易中完成。突發流量按租戶配額、優先級或加權公平分配,不能讓單一租戶耗盡共享池。把剩餘額度、重試時間或排隊狀態回傳客戶端,減少盲目重試。

5. 故障、跨區域與對帳

權威儲存不可用時,寧可短暫拒絕高風險預留,也不要在未知狀態放行計費資源;低風險讀取可回傳帶時間戳的近似值。跨區域可按租戶固定主區域,或採帶邊界的本地配額並非同步對帳。每次預留、提交、釋放寫入不可變帳本,定期與實際使用對帳,漂移用冪等補償任務修復。

高品質示範回答

我會先釐清資源、租戶層級、預留時間與一致性要求。服務維護每個資源鍵的 limit、committed、reserved 與版本,提供帶 reservation_id 的 reserve、commit、release 與查詢 API。reserve 在原子條件更新中檢查三者總和,重複請求回傳同一結果;呼叫方寫入成功後 commit,失敗或取消 release,過期由回收任務處理。共享池同時檢查全域與租戶額度,以固定路由、優先級或加權策略維持公平。權威儲存故障時對高風險寫入保守拒絕,跨區域按租戶固定主區域或設定本地超額邊界。所有狀態變更寫入帳本,與實際使用定期對帳。

常見錯誤

  • 把配額服務等同於只回傳 429 的速率限制器。
  • 先讀剩餘量再寫入,沒有原子條件導致並發超賣。
  • 沒有 reservation_id、到期時間與冪等語意。
  • 預留者崩潰後額度永久占用。
  • 只談租戶限額,忽略共享池、層級約束與公平性。

追問及應對

呼叫方在 commit 前逾時,應重試還是重新 reserve?

先用相同 reservation_id 查詢或重試 commit,確保冪等;確認預留已釋放或過期後才建立新預留。

一個租戶多個產品共用額度怎麼辦?

以租戶作共享父級、產品作子級約束,在同一交易檢查兩層;失敗時說明是哪一層耗盡,方便降級或排隊。

可以跨區域同時預留嗎?

計費資源不能超賣時用單一權威區域或強一致協調。允許有限超額時,為每區設定借額上限,並把超額與償還納入對帳。

如何發現額度與實際使用不一致?

用帳本事件、資源掃描與週期對帳比較 committed、reserved 與真實使用,依租戶和資源類型告警;補償任務要冪等並保留稽核紀錄。

公開來源

同類題目

資源

產品比較

每份比較均依官方資料整理,並標示複核日期。

查看完整比較

相關面試工具

用 Solve 整理系統設計回答

從澄清需求開始,展開規模、架構、元件選擇和取捨。

查看工具