系統設計入門:Rate Limiting

ChunJen Wang
jimmy-wang
Published in
May 1, 2022

*Poke* *Poke* *Poke*….你戳太多次了!!!

Rate Limiting

指系統一段時間發requests的上限次數。原目的是為了避免DoS攻擊,透過限制每1秒限制收1個request,或每10秒收5個requests等等。

DoS Attack (denial-of-service attack) 阻斷服務攻擊
指他人透過網路重複發送請求,使目標電腦的網路或系統資源耗盡,導致服務暫時中斷或停止,結果就是一般使用者無法存取。

而當今日有人透過2台以上電腦或殭屍網路進行攻擊,就稱為DDoS attack(distributed denial-of-service attack)分散式阻斷服務攻擊。

DDoS可能導致的結果:
1. 網路異常緩慢
2. 特定網站無法存取
3. 無法存取任何網站
4. 垃圾郵件的數量急劇增加
5. 無線或有線網路連接異常斷開
6. 長時間嘗試存取網站或任何網際網路服務時被拒絕
7. 伺服器容易斷線、卡頓、存取延遲

如何防禦?

  1. 限速: 如文初提到的作法,直接在client端限制每秒可傳送request次數上限,避免頻寬過載或資源耗盡。
    舉例來說,Redis就可用作是rate limiting中介。
  2. 防火牆: 使用工具來基於一系列規則篩選 Web 流量,例如,限制異常IP位址發出的請求,或是透過防火牆監控和分析網絡流量。

--

--

ChunJen Wang
jimmy-wang

嗨,歡迎你的到來,我目前在銀行擔任DS。過去曾做過銀行大型專案BA,也曾在轉職科技業DE中踢了鐵板,相信每一個人都有自己要走的路,而努力的過程,可以讓我們離心中理想更接近,如果我的文章能帶給你一些啟發與幫助,別忘了幫我在文章底下按下拍手~^^