"System-Design"
- 9.0 請求路徑上的負載分析:一次一筆的處理、在它之前能回應的請求、多出來的請求怎麼處置、保護把負載轉到哪裡、重送與去重,以及保護元件與依賴故障時的處置
沿著一個會改變狀態的請求從用戶端到資料庫的路徑分析負載時共用的幾個概念:必須一次只處理一筆的那件事與它的互斥範圍、需要經過它的請求裡結果事先已確定的比例、多出來的請求要排隊、拒絕還是請使用者重新確認、每一段保護把負載轉給了哪個元件(保護元件自己的狀態、連線數、輪詢、下游接收端、外部配額)、佇列與重按帶來的重送怎麼去重、保護元件故障或輸出錯的值時下游讀到什麼,以及依賴變慢、部分失效與恢復時的第二波湧入
- Backend 範例系統:短網址、售票搶購、電商 checkout 與交易撮合的功能、需求與規模假設
Backend 教材幾篇以具體系統走完整條請求路徑的文章共用的四個範例系統:每個系統提供的功能與請求種類、不能讓步與可以讓步的需求、規模假設與起點架構,以及四個系統在成功請求的總數是否有上限、延遲是否改變請求的價值、同一個請求被處理兩次的後果上的差別
- 短網址的商業模型:訂閱、自架、平台內建與廣告插頁各由誰出資維持轉址
拆解維持短網址轉址的錢從哪裡來:建立連結的人為點擊分析、品牌網域或託管服務付訂閱費,自架者自己付主機與網域,平台由母公司出資,廣告插頁由廣告主出資;連結能活多久跟著出資者走,各出資方式交給工程的規格也不同
- 0.23 短網址服務的需求定義:自建或購買、保存期限、目的地修改與濫用處理的規格
短網址服務交給工程之前要定案的需求決定:自建或購買、點擊資料的地位、連結的保存承諾、目的地能否修改、建立者的範圍、短碼的可猜測性、網域策略與可用性分級;多數答案由商業模型推出,目的地修改、短碼可猜測性與可用性分級由使用情境決定
- 0.24 短網址服務的實作:短碼生成、對照表儲存、轉址快取與點擊紀錄
以需求已定案為前提的實作取捨:建立與轉址兩條路徑的流量形狀、各種短碼生成方式的可猜測性與協調成本、轉址狀態碼與各層快取怎麼影響停用或修改連結多久生效、點擊事件的非同步紀錄、濫用防護、服務結束時的靜態轉址與網域去向,以及換掉任一項需求決定時要重選的實作位置
- 0.25 短網址服務的瞬時大流量:爆紅連結、建立路徑的機器人濫用與轉址路徑的攻擊
短網址服務遇到瞬時大流量時的處置:單一連結被大量轉發時負載落在哪一層、點擊事件管道的積壓與目的地網站承受不住匯集的點擊,爆紅的連結是惡意連結時快取與撤回的衝突,建立路徑被機器人大量建立連結時的成本、檢查管道與准入手段,以及轉址網域遭受掃描或體積型攻擊