Выбор ответа Middle Безопасность бэкенда обновлено

Rate limit на нескольких экземплярах

Вопрос

На вход стоит лимит 5 попыток в минуту, счётчик хранится в памяти процесса. Сервис запущен в 4 репликах. Сколько попыток реально получит злоумышленник?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

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

Варианты ответа

  1. 5, лимит общий на сервис
  2. Неограниченно: лимит в памяти не работает вовсе
  3. 1, остальные реплики заблокируют
  4. До 20: у каждой реплики свой счётчикправильный ответ

Разбор

Каждая реплика считает только свои запросы, а балансировщик раскидывает попытки по всем. Получается до 5 × 4. Общий счётчик держат в Redis (атомарный INCR с TTL или скользящее окно).

  • 5 было бы с общим хранилищем.
  • 1 никак не следует из условия.
  • Лимит работает, но на каждой реплике отдельно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме