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