Алгоритмы: token bucket (стабильный rate), sliding window (точнее), leaky bucket (сглаживание). Для distributed: Redis + Lua скрипт (MULTI/EXEC atomicity). Для single instance: golang.org/x/time/rate. Ключ: user ID, IP, API key. Хранение: Redis EXPIRE для автоочистки. Ответ: 429 + Retry-After header. Разные лимиты для разных эндпоинтов и тарифов.
Как спроектировать rate limiter на Go?
Middle
192 просмотровAFK Offer AI
Как работать с time series данными?