Автор разбирает три основных алгоритма рейт лимитинга в 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
Похожее
28.09.2026
C на Go
Интересный пропозал - добавить возможность сборки Go-пакетов, использующих cgo д...
25.09.2026
Бенчим джейсон
Автор на реальном API с нагрузкой 50M запросов/сутки)сравнивает производительнос...
24.09.2026
Rune
Команда Unstable Build заопенсорсила свою нативную IDE Rune, написанную на Go. ...
23.09.2026
Специализированные аллокаторы
В Go 1.27 появилась оптимизация выделения памяти для объектов размером до 80 бай...