Все задачи
Лёгкаяsystem-designload-balancingscaling

Балансировщик нагрузки

Принято: 100.0%Решили: 1

Условие

Продукт вырос: обычная нагрузка теперь 1200 запросов в секунду, а по вечерам — вдвое больше. На одном узле «сервер приложения» нельзя держать больше 5 инстансов (ограничение организации), поэтому нужны несколько групп серверов и балансировщик перед ними. Балансировщик делит запросы поровну между подключёнными серверами приложения. Тариф базы данных подберите под нагрузку: запись в 3 раза дороже чтения.

Ограничения

  • p95 ≤ 300 мс, ошибки ≤ 0,1 %, бюджет $2400/мес, ≤ 5 инстансов на узел.

Требования

СимуляцияПостроить с нуля
p95
≤ 300 ms
Ошибки
≤ 0.10 %
Бюджет
$2,400/mo
Пользователей
100,000
Ваша архитектура стоит$0 / $2,400

★ в бюджете · ★★ ≤ 75 % · ★★★ ≤ 50 % бюджета

Сценарии (проверяются по порядку)
  1. 1Дневная нагрузкаНагрузка

    1200 запросов/с в течение 60 секунд: 80 % чтений, 10 % записей, 10 % статики.

    60 s · 1,200 rps · R 80 / W 10 / S 10 %

  2. 2Вечерний пикВсплеск

    С 30-й секунды на 60 секунд трафик удваивается (2400 запросов/с).

    120 s · 1,200 rps · R 80 / W 10 / S 10 % · ×2 с 30-й с на 60 с

Блоки

Нажмите, чтобы добавить, или перетащите на холст. Соединяйте блоки, протягивая от правой точки к левой.

ИИ-наставник

Застряли? Возьмите подсказку — наставник объясняет идею, но никогда не выдаёт решение.

Решите задачу, чтобы открыть разбор.