Giới hạn tốc độ Open API
Giới thiệu
Tài liệu này định nghĩa quy tắc giới hạn tốc độ (rate limit) của Open API theo chiều và cửa sổ thời gian, giúp nhà phát triển kiểm soát tần suất gọi và tránh lỗi do vượt giới hạn.
Định nghĩa cốt lõi
1. Chiều giới hạn
| ID | Tên | Mô tả |
|---|---|---|
| USER | Người dùng | Giới hạn theo định danh người dùng (ví dụ user ID) |
| APP | Ứng dụng | Giới hạn theo định danh ứng dụng (ví dụ app ID gắn API key) |
| GLOBAL | Toàn cục | Giới hạn toàn nền tảng cho mọi bên gọi |
2. Cửa sổ thời gian
| ID | Đơn vị | Mô tả |
|---|---|---|
| SECOND | Giây | Cửa sổ 1 giây |
| MINUTE | Phút | Cửa sổ 1 phút (60 giây) |
Quy tắc giới hạn
Nền tảng dùng chiến lược đa chiều, đa cửa sổ. Vượt bất kỳ chiều/cửa sổ nào đều bị chặn:
| Chiều | Cửa sổ | Giới hạn | Mô tả |
|---|---|---|---|
| USER | Giây | 100/giây | Tối đa 100 lần/giây mỗi người dùng |
| USER | Phút | 5000/phút | Tối đa 5000 lần/phút mỗi người dùng |
| APP | Giây | 20/giây | Tối đa 20 lần/giây mỗi ứng dụng |
| APP | Phút | 1000/phút | Tối đa 1000 lần/phút mỗi ứng dụng |
| GLOBAL | Giây | 3000/giây | Tối đa 3000 lần/giây toàn nền tảng |
| GLOBAL | Phút | 150000/phút | Tối đa 150000 lần/phút toàn nền tảng |
Quy tắc « trần thấp nhất thắng ». Ví dụ: 101 lần trong 1 giây vẫn bị chặn dù chưa đạt giới hạn phút; 1001 lần trong 1 phút vẫn bị chặn dù chưa đạt giới hạn giây.
Khi chạm giới hạn
- Mã trạng thái: API trả về
60001(INTERFACE_RATE_LIMIT):- Mã: 60001
- Thông báo: Rate limit exceeded, please try again later
- Khôi phục: Chờ cửa sổ hiện tại kết thúc (1 giây cho giới hạn theo giây, thời gian phút còn lại cho giới hạn theo phút), sau đó bộ đếm được reset.
Lưu ý
- Đếm dựa trên yêu cầu được nhận và xử lý; tham số sai và lỗi xác thực vẫn tính vào giới hạn.
- Nên triển khai kiểm soát tốc độ phía client và chia nhỏ burst theo quy tắc này.
- Liên hệ vận hành nền tảng nếu cần trần cao hơn.
- Quy tắc có thể thay đổi theo năng lực dịch vụ; sẽ thông báo trước qua kênh công bố.