Выбор ответа Middle Кластер, воркеры, масштабирование обновлено
setInterval-крон при нескольких экземплярах
Вопрос
В сервисе setInterval раз в сутки рассылает дайджест. Сервис масштабировали до 4 реплик. Что произойдёт?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Каждый пользователь получит 4 письма. Каждая реплика независимый процесс со своим таймером, и каждая выполнит рассылку.
Варианты ответа
- Каждый пользователь получит 4 письмаправильный ответ
- Рассылка уйдёт один раз: реплики договорятся автоматически
- Рассылка не уйдёт: таймеры в репликах отключаются
- Письма уйдут один раз, но в 4 раза быстрее
Разбор
Каждая реплика независимый процесс со своим таймером, и каждая выполнит рассылку. Такие задачи выносят в отдельный планировщик с одним исполнителем, в очередь с уникальным ключом задачи или защищают распределённой блокировкой.
Реплики ничего не знают друг о друге, автоматической координации нет, и таймеры в них работают как обычно.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Кластер, воркеры, масштабирование»
- Консистентное хеширование с виртуальными узлами
- Балансировка least connections
- Плавный взвешенный round-robin как в nginx
- Код-ревью: сервис перед масштабированием в 4 инстанса
- Модуль cluster
- cluster внутри Kubernetes
- Память у воркеров cluster
- Как Node.js использует несколько ядер