Как спроектировать rate limiter?

Middle
688 просмотров
AFK Offer AI

Rate limiter ограничивает количество запросов в единицу времени. Самые популярные алгоритмы — token bucket и sliding window. Token bucket: есть корзина с токенами, каждый запрос забирает токен, токены добавляются с фиксированной скоростью. Sliding window: считаем запросы в скользящем окне времени. Для распределённой системы счётчики хранишь в Redis с INCR + EXPIRE. В Go делаешь middleware, который перед обработкой запроса проверяет лимит по IP или API key.

Следующий вопрос

Что такое window function?