нужно ограничить 100 запросов в секунду для 1 TCP соединения.
Смотрел мануал x/time/rate но не особо разобрался как это возможно провернуть.
for {
n, err := conn.Write(payload)
if n != 0 && err == nil {
// ok
}
}
Uber ratelimit
https://pkg.go.dev/golang.org/x/time/rate
netutil.LimitListener ?
что вы собираетесь делать с остальными запросами? вот к примеру у вас за секунду пришло 200 запросов, на 100 вы вызвали accept, с остальными что?
вроде как вопрос про ограничение на кол-во запросов в рамках одного соединения. получается если он в секунду уже соточку раз присылал запрос, то на 101 и далее 429 для данного соединения
Будем оперировать на уровне блоков данных записанных в write. Блок не более 64 байт, его даже сегментировать не нужно. Каждую операцию записи будем считать за условный "пакет". Вот мне нужно ограничить чисто этих записей в секунду
Обсуждают сегодня