Rate limiter ограничивает количество запросов от клиента за период времени. Простейшая реализация — map[clientIP][]time.Time, где хранишь таймстемпы запросов и считаешь, сколько попало в окно. В Go стандартная библиотека даёт golang.org/x/time/rate — token bucket алгоритм. Создаёшь rate.NewLimiter(rate.Every(time.Second), 10) — 10 запросов в секунду. В middleware вызываешь limiter.Allow() — если лимит превышен, возвращаешь 429 Too Many Requests. Для распределённых систем лимитер делают на Redis с INCR и TTL.
Что такое rate limiter и как его реализовать?
Middle
879 просмотровAFK Offer AI
Как мокировать зависимости?