突發流量的分類
突發流量的分類
突發流量按可預測性分成兩類。可預期的突發(行銷活動、新聞發佈)可以事前準備容量;不可預期的突發(病毒傳播、error storm)只能靠架構設計吸收衝擊。
可預期突發
事前知道流量會增加,有時間準備。
| 來源 | 流量倍率 | 持續時間 | 特徵 |
|---|---|---|---|
| 行銷活動(促銷、限時折扣) | 5-50x | 數小時~數天 | 流量集中在活動開始的前幾分鐘 |
| 新聞曝光(媒體報導、社群爆紅) | 10-100x | 數小時 | 不可控的流量曲線、峰值在發佈後 1-2 小時 |
| 定時推播(每日報表、週報) | 2-10x | 分鐘級 | 短暫但可精確預測時間 |
| 新版本推送(app store 更新) | 3-10x | 數天(逐漸擴散) | 流量緩慢上升、峰值在推送後 24-48 小時 |
可預期突發的應對核心是容量預備 — 活動前擴容、活動後縮回。
預備清單
| 項目 | 做什麼 | 何時做 |
|---|---|---|
| 容量估算 | 歷史峰值 × 安全係數(1.5-2x) | 活動前 1 週 |
| 擴容 | 加實例 / 加資源 / 預熱 cache | 活動前 1 天 |
| 降級預案 | 設定動態取樣的觸發閾值 | 活動前 1 天 |
| 壓力測試 | 模擬預期流量打 staging | 活動前 3 天 |
| 值班 | 安排值班人員監控 dashboard | 活動期間 |
不可預期突發
事前不知道流量會增加,只能靠架構設計吸收。
| 來源 | 流量倍率 | 持續時間 | 特徵 |
|---|---|---|---|
| 病毒傳播(社群分享爆量) | 10-1000x | 數小時 | 完全無法預測、可能超過任何預備容量 |
| DDoS 攻擊 | 100-10000x | 不定 | 惡意流量、需要 WAF / CDN 擋在前面 |
| Error storm(app bug 觸發大量 error) | 依 bug 影響範圍 | 直到 hotfix | 每個受影響的使用者都在送 error 事件 |
| 外部依賴復原(積壓請求一次湧入) | 2-5x | 分鐘級 | 依賴恢復後積壓的 retry 一起到達 |
不可預期突發的應對核心是降級 — 系統在超載時自動犧牲非核心功能,保住核心功能。
監控系統的 error storm
Error storm 是監控系統特有的突發場景:被監控的 app 出了 bug,每個受影響的使用者都在送 error 事件。如果有 10 萬使用者同時遇到同一個 bug,collector 瞬間收到 10 萬筆 error 事件。
Error storm 的矛盾:error 事件是 debug 最需要的資料,但 storm 時的大量 error 可能打垮 collector。處理策略是保留前 N 筆完整 error(含 stack trace)、後續的 error 只計數不存原始資料。第一筆 error 的 stack trace 足夠 debug,後續的 10 萬筆只是確認影響範圍。
下一步路由
#devops #burst-traffic #classification #marketing #error-storm