Автор разбирает три основных алгоритма рейт лимитинга в Go: Token Bucket в библиотеке golang.org/x/time/rate, Leaky Bucket из go.uber.org/ratelimit и Sliding Window его собственной реализаций со слайсом временных меток.
Token Bucket подходит для большинства случаев - разрешает всплески, а Allow/Wait/Reserve покрывают как HTTP- middleware, так и throttle исходящих запросов. Leaky Bucket выдает строго равномерный поток без всплесков. Sliding Window дает точное "не более N запросов в любом окне длительности W", но дороже по памяти.
Очевидный результат - по умолчанию брать x/time/rate и не писать свою реализацию
28.05.2026
Похожее
27.08.2026
На Rust после Go
Автор, пять лет писавший на Go, сначала скептически отнесся к появлению Rust в е...
24.08.2026
Поговорим про PGO
Profile-guided optimization (PGO) заменяет эвристические догадки компилятора реа...
22.08.2026
Время читать код
Автор утверждает, что главное узкое место разработки незаметно сместилось с напи...
21.08.2026
Go для Dreamcast
Я только на прошлой неделе публиковал пост, в котором искал инструмент для прогр...