Что такое token bucket на каналах?

Middle+
99 просмотров
AFK Offer AI

Token bucket — алгоритм rate limiting. На каналах: создаёшь buffered канал, тикер добавляет токены с заданной частотой. Перед операцией горутина забирает токен из канала. Если пусто — ждёт. Буфер определяет burst size. На практике лучше использовать golang.org/x/time/rate.Limiter — он реализует token bucket оптимальнее, с поддержкой Wait, Allow и Reserve.

Следующий вопрос

Как работает sync.Cond и когда его использовать?