Назад к вопросам
Senior
6
Что такое Rate Limiting? Какие алгоритмы существуют?
Компании, где спрашивали
Lenta Tech
Ответ от нейросети
sobes.tech AI
Rate Limiting — это механизм ограничения количества запросов к сервису за определённый промежуток времени, чтобы защитить систему от перегрузки и злоупотреблений.
Основные алгоритмы Rate Limiting:
- Token Bucket — в бакете накапливаются токены с фиксированной скоростью; для выполнения запроса требуется взять токен. Если токенов нет, запрос отклоняется.
- Leaky Bucket — запросы поступают в очередь с фиксированной скоростью обработки, излишек запросов «протекает» и отбрасывается.
- Fixed Window — считает количество запросов в фиксированном временном окне (например, 1 минута). Если лимит превышен, запросы блокируются.
- Sliding Window — более точный вариант Fixed Window, учитывающий скользящее окно времени для подсчёта запросов.
В Go для реализации Rate Limiting часто используют пакет golang.org/x/time/rate, который реализует Token Bucket.