Автор разбирает три основных алгоритма рейт лимитинга в 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
Похожее
09.07.2026
Джину уже 12 лет
Ману Мартинес-Алмейда рассказывает историю как он создавал Gin - одного из самых...
08.07.2026
zero-copy-оптимизации
Разбор zero-copy-оптимизаций в Go. Когда вы передаете `*os.File` напрямую `в...
07.07.2026
WAL-RUS
ClickHouse Cloud переписали утилиту для бэкапов и WAL-архивирования Postgres с G...
06.07.2026
Профилирование
Статья разбирает пять встроенных профилировщиков в Go (CPU, heap, block, mutex и...