Bài viết liên quan
Rate Limiting
Rate Limiting / Throttling
Rate Limiting là gì?
Rate Limiting (còn gọi là Throttling) là cơ chế kiểm soát số lượng request mà một client được phép gửi đến API ngân hàng trong một khoảng thời gian nhất định, ví dụ 100 request/giây/endpoint hoặc 10.000 request/giờ/API key. Đây là tuyến phòng thủ quan trọng trong kiến trúc ngân hàng mở (Open Banking), giúp hệ thống core banking vận hành ổn định dưới tải cao.
Đặc điểm
- Thuật toán phổ biến: Token Bucket, Leaky Bucket, Sliding Window Counter và Fixed Window — mỗi loại có ưu nhược điểm riêng về độ chính xác và chi phí bộ nhớ.
- Phân cấp quota theo gói: Gói sandbox miễn phí ~1.000 call/ngày; gói doanh nghiệp đến 10 triệu call/tháng kèm burst capacity cho phép vượt ngưỡng trong thời gian ngắn.
-
Response chuẩn: Khi vượt giới hạn, server trả
HTTP 429 Too Many Requestskèm headerRetry-AftervàX-RateLimit-Remaining. - Mục tiêu: Ngăn chặn tấn công DDoS, bảo vệ core banking khỏi quá tải và đảm bảo SLA cam kết với đối tác tích hợp.
Ví dụ
Khi ví điện tử MoMo gọi API tra cứu số dư Vietcombank vượt 150 req/giây (vượt quota 100 req/giây của endpoint /accounts/balance) sẽ nhận HTTP 429 với body {"error":"rate_limit_exceeded","retry_after":2}. Theo Thông tư 17/2024/TT-NHNN về cung ứng dịch vụ qua phương thức điện tử, ngân hàng phải công khai giới hạn rate limit trong tài liệu API và có cơ chế nâng quota cho đối tác chiến lược.