Rate Limiting
作者:Trần Quốc Huy

1. Vấn đề
1.1. Spam request từ user xấu
1.2. DDos
1.3. Web scraping không kiểm soát
1.4. Gây ra
1.4.1. Tiêu thụ tài nguyên hệ thống
1.4.2. Tăng chi phí cloud computing
2. Xác định User
2.1. User đã xác thực
2.1.1. User Id
2.1.2. Api key
2.2. User chưa xác thực
2.2.1. IP Address (IPv4/IPv6)
2.2.2. Browser Fingerprinting
2.2.2.1. User Agent, Screen resolution, Installed fonts
2.2.2.2. Và nhiều thuộc tính khác
3. Thuật toán Rate limiting
3.1. Fixed Window
3.1.1. Chia thời gian thành window cố định
3.1.1.1. Mỗi window có giới hạn nhất định
3.1.2. Đơn giản implement
3.1.3. Có thể bị burst traffic
3.2. Sliding Window
3.2.1. Window trượt theo thời gian thực
3.2.1.1. Mỗi window có giới hạn nhất định
3.2.2. Tránh được burst traffic
3.2.3. Phức tạp implement
3.3. Leaky Bucket
3.3.1. Request vào bucket với rate bất kỳ
3.3.2. Số lượng request trong bucket sẽ giảm theo rate cố định
3.3.3. Cho phép burst traffic ngắn hạn và tuần tự theo rate nếu tiếp tục gửi request