遊戲 Lag 白皮書 › L13 伺服器架構與維運
依賴外部服務 External dependencies (auth, billing, platform)
原因 ID in-external · 主要負責 外部(外部) · 協同 遊戲開發團隊(伺服器開發)
在含圖解與實驗的完整版中開啟卡片 →
平台登入、付款、身分驗證這類外部服務變慢或停擺時,會卡在那個步驟。
為什麼 外部認證、付款服務故障或延遲 → 於是 在該步驟等待回應 → 畫面上 無法登入、付款失敗。已在遊戲中的人正常
- 症狀
- 連不上/無限讀取, 吃指令/回檔
- 因素
- 停滯
- 誰會遇到
- 整個伺服器, 只有特定功能
- 何時
- 剛登入/維護剛結束, 做特定動作時
- 負責單位
- 主要負責 外部(外部) · 協同 遊戲開發團隊(伺服器開發)
- 遊戲開發團隊要做的事
- 外部呼叫設逾時並提供清楚的說明,快取認證結果,建立付款重試與補償流程。
- 外部要做的事
- 向認證、付款、平台業者確認故障並要求修復,告知玩家是外部服務故障。
- 圖表上
- 從某個時間點起階梯式上升 · 外部呼叫的回應時間與錯誤率、登入成功數
- 查看位置
- 平台登入、付款、身分驗證等各外部呼叫的回應時間、錯誤率、逾時次數,以及業者的狀態頁面
- 符合的跡象
- 從登入、付款失敗集中的時間點起,只有特定外部呼叫的錯誤與逾時升高一階並維持,業者狀態頁面上同一時間有故障
- 不符合的跡象
- 外部呼叫正常但登入卡住時,是登入伺服器本身(執行緒池耗盡、DB)或作業系統的連線等待佇列(backlog)的問題
- 確認方式
- 需要遊戲伺服器/用戶端的 log 與指標
- 實際案例
- Fastly 2021: Fastly CDN 全球性錯誤
AWS 2021: AWS us-east-1 內部網路壅塞
AWS 2025: AWS us-east-1 DynamoDB DNS 事故與漫長的復原
出處
- Timeouts, retries, and backoff with jitter AWS
Amazon Builders' Library。等待回應期間會占用執行緒、連線等資源,所以要設逾時;有副作用的 API 只在保證冪等性時才重試 - Circuit Breaker Pattern Microsoft Azure
失敗機率高的呼叫不等到逾時就直接拒絕,守住回應時間 - REL05-BP01 Implement graceful degradation to transform applicable hard dependencies into soft dependencies AWS
AWS Well-Architected。依賴的服務故障時,即使用稍舊的資料也要維持核心功能(快取認證結果的依據)
相關原因
同一層:L13 伺服器架構與維運
同一症狀(連不上/無限讀取)在其他層的原因
查看含圖解與實驗的完整版卡片