Ctrl K
Backend · Senior · Дизайн

Спроектируйте распределённый rate limiter для публичного API: лимиты задаются на ключ клиента, запросы обрабатывают десятки инстансов шлюза.

~10 мин голосом

Как подойти

Проверяют, умеет ли кандидат спроектировать общее состояние для десятков инстансов: выбрать алгоритм лимитирования, обеспечить атомарность без гонок и осознанно балансировать точность, задержку и отказоустойчивость.

Встречал этот вопрос на настоящем собесе?
Ответов0
Средний балл—
Сильных—
Тренировали0
Темы
Похожие вопросыНапиши потокобезопасный класс RateLimiter: в конструктор передают, сколько запросов в секунду разрешено, а метод tryAcquire без ожидания возвращает true, если запрос можно пропустить, и false, если лимит исчерпан. Его будут вызывать одновременно из многих потоков. SeniorНапишите rate limiter для API по алгоритму token bucket: функция allow принимает идентификатор клиента и возвращает, можно ли пропустить его запрос. У каждого клиента есть ёмкость корзины и скорость пополнения токенов в секунду, а сам лимитер вызывается из многих потоков одновременно. SeniorСпроектируйте rate limiter для публичного API: например, не больше 100 запросов в минуту на один API-ключ. Сервис работает на нескольких инстансах. MiddleВаш сервис синхронно обращается к внешнему сервису, который иногда отвечает очень медленно или с ошибками. Как сделать так, чтобы это не положило ваш сервис? MiddleСервис сохраняет заказ в базу, а затем публикует событие «заказ создан» в брокер сообщений. Какие проблемы здесь возможны и как их решить? Middle

Ответь голосом

Интервьюер задаст этот вопрос и послушает. Думай вслух, проси подсказку, если нужно. Закончил — пауза или «Я ответил», через минуту здесь балл и какие пункты закрыты.

Войти, чтобы ответить

Лучше в наушниках · ~10 мин