Rate limiting в Go. Реализация на уровне handler.

Ответ

Ограничение частоты запросов по ключу (IP, user id, API key). Алгоритмы: фиксированное окно, скользящее окно, token bucket. В Go: middleware с хранилищем (map + mutex или Redis для распределенного). При превышении возвращают 429 Too Many Requests и Retry-After. Библиотеки: golang.org/x/time/rate (token bucket), ulule/limiter.

limiter := rate.NewLimiter(10, 20) // 10/sec, burst 20
if !limiter.Allow() {
    http.Error(w, "Too Many Requests", 429)
    return
}
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.