Vì sao cần giới hạn tốc độ?
Không có giới hạn, một client lỗi hoặc tấn công có thể làm sập cả hệ thống. Rate limiting là lớp phòng thủ đầu tiên.
“Hệ thống bền vững biết nói không đúng lúc.”
Những điểm chính
- Token bucket cho phép bùng nổ ngắn
- Sliding window chính xác hơn fixed window
- Trả về mã 429 kèm header Retry-After
Bảng tóm tắt
| Thuật toán | Ưu điểm | Nhược điểm |
|---|---|---|
| Fixed window | Đơn giản | Đột biến ở biên |
| Sliding window | Chính xác | Tốn bộ nhớ |
| Token bucket | Linh hoạt | Cần tinh chỉnh |
Các bước thực hiện
- Xác định hạn mức theo từng loại client
- Chọn thuật toán
- Lưu bộ đếm ở Redis
- Trả về phản hồi rõ ràng
Giới hạn hợp lý giúp mọi người dùng đều được phục vụ tốt.
