![](http://webcf.waybackmachine.org/web/20211007040253im_/https://habrastorage.org/getpro/habr/avatars/1a3/2cd/706/1a32cd706b2d50526638707e3d3cdacc.png)
YARL: как Яндекс построил распределённый Rate Limiter с нулевым влиянием на время ответа сервисов
- Блог компании Яндекс,
- Высокая производительность,
- Проектирование и рефакторинг,
- Серверная оптимизация,
- Серверное администрирование
Yandex Rate Limiter (далее просто YARL) — это сервис лимитирования нагрузки для распределённых сервисов. Его особенность в том, что он способен работать с миллионами квот, имея при этом очень низкие накладные расходы на проверку квоты. Если совсем кратко, это система распределённых Leaky Bucket'ов, с помощью которых можно ограничивать разные величины, связанные со временем: скорость передачи данных по сети, запросы в секунду и т. п.
Меня зовут Денис Кореневский, я работаю в службе разработки внутреннего хранилища Яндекса, и сегодня я расскажу, как YARL устроен внутри, почему мы вообще написали своё решение и с какими трудностями нам пришлось столкнуться в процессе создания. Добро пожаловать под кат.