Выбор ответа Middle Кластер, воркеры, масштабирование обновлено

Память у воркеров cluster

Вопрос

В сервисе счётчик просмотров хранится в переменной модуля let views = 0. После перехода на cluster с 4 воркерами цифры стали «прыгать». Почему?

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

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

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

Коротко

Правильный ответ: Каждый воркер это процесс со своей копией views. Воркеры cluster это процессы, памяти у них общей нет.

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

  1. cluster сбрасывает переменные модулей каждые 60 секунд
  2. Round-robin отправляет все запросы в первый воркер
  3. Гонка потоков: воркеры одновременно пишут в одну переменную
  4. Каждый воркер это процесс со своей копией viewsправильный ответ

Разбор

Воркеры cluster это процессы, памяти у них общей нет. У каждого свой views, и ответ зависит от того, какой воркер принял запрос. Общее состояние выносят в Redis или базу.

  • Никакого периодического сброса нет.
  • Гонки потоков нет: переменная не общая, в каждом процессе своя.
  • Round-robin как раз распределяет запросы по всем воркерам.

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

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

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