Sobes.tech
Назад к вопросам
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.