Как реализовать rate limiting в Python?

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

Rate limiting — ограничение количества запросов. Алгоритмы: Token Bucket — токены накапливаются, запрос тратит токен. Sliding Window — считаем запросы за окно. Fixed Window — счётчик сбрасывается в начале окна. В FastAPI: slowapi (обёртка над limits). В Django: django-ratelimit. Своя реализация: Redis + INCR + EXPIRE. Декоратор: @rate_limit(calls=10, period=60). Response headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. 429 Too Many Requests — стандартный ответ. Retry-After header. Per-user, per-IP, per-endpoint — разные стратегии.

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

Реализуйте стек с операциями push, pop, peek и min за O(1)