Notes
Check API Design
單一行動請不要用 2 個 Request 來處理:
- 例如:轉帳請不要用兩次 PUT User_balances API ,而是用一次 POST Transfer API
- 避免 race condition
避免 Positive Feedback
簡言之,就是避免使用者不斷按重新整理導致 request 大增
1. 可以先讓部分網頁顯示
2. 可以先接收使用者的 Request (HTTP 202(Accepted)) => 很多網上訂位系統,都是先收下用戶指令,然後再慢慢處理
3. 對部份用戶返回 HTTP 503
Defend Unnormal Request
請先在 application tier 阻擋有問題的 request
Cache
- 原本有 n 台 caching 主機,新增主機至 m 台後應該先
mod(md5(key), m)
看看新位置有否有資料,若沒有則去mod(md5(key), n)
取得資料 - 不應該將 hot data 只放在一台 caching 主機上