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

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

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

Как подойти

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

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

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

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

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

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