Что такое Rate Limiting
Ограничение количества запросов к API
Rate Limiting — механизм ограничения количества запросов к API или сервису за определённый период времени.
Зачем нужен Rate Limiting
- Защита сервера от перегрузки
- Предотвращение DDoS-атак
- Справедливое распределение ресурсов
- Контроль затрат на инфраструктуру
- Обеспечение стабильной работы для всех пользователей
Типы ограничений
- По запросам в секунду (RPS) — классический лимит
- По запросам в минуту/час — для долгосрочного контроля
- По пользователю — индивидуальные лимиты
- По IP-адресу — защита от ботов
- По тарифному плану — монетизация API
Алгоритмы реализации
- Token Bucket — корзина с токенами
- Leaky Bucket — дырявое ведро
- Fixed Window — фиксированные окна
- Sliding Window — скользящее окно
HTTP-заголовки
- X-RateLimit-Limit — максимум запросов
- X-RateLimit-Remaining — осталось запросов
- X-RateLimit-Reset — время сброса лимита
- Retry-After — когда можно повторить