Trung BìnhNetwork iconNetwork

Rate limiting là gì? Các chiến lược rate limiting phổ biến và cách implement?

Rate limiting giới hạn số request trong khoảng thời gian để bảo vệ server khỏi abuse, DDoS, và đảm bảo fair usage.

Các thuật toán:
- Fixed Window: đếm request trong window cố định (100 req/minute) — đơn giản nhưng có edge case tại boundary.
- Sliding Window Log: lưu timestamp từng request, đếm trong rolling window — chính xác nhưng tốn memory.
- Sliding Window Counter: kết hợp hai window giữa — balance giữa độ chính xác và hiệu quả.
- Token Bucket: bucket chứa tokens, mỗi request tiêu 1 token, token được refill đều — cho phép burst ngắn hạn.
- Leaky Bucket: queue request và xử lý với tốc độ cố định — smooth output.

Implement: Redis INCR + EXPIRE cho distributed rate limiting; response headers X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After để client biết limit. Rate limit theo IP, user ID, API key, hoặc kết hợp.

Xem toàn bộ Network cùng filter theo level & chủ đề con.

Mở danh sách Network