2014-11-05 3 views
0

Я тестирую кластерный модуль с помощью простого webapp и сталкиваюсь с поведением, которое не соответствует тому, как я думал, что узел работает.Работники Node.js, есть ли у них независимые циклы событий?

Мое приложение имеет только экспресс-маршрутизатор, который вызывает блокировку службы фибоначчи (он не использует nextTick или setImmediate).

Сценарий 1 - нет рабочих: Как и ожидалось, первый запрос блокирует цикл событий, ожидающий результата, а другие запросы не могут быть выполнены.

Сценарий 2 - с рабочими: Я начинаю работать с n, и, на удивление, он может выполнять n запросов одновременно. Я думал, что, поскольку мастер-процесс и рабочие имеют один и тот же сокет, они также будут иметь один и тот же цикл событий. Может кто-нибудь объяснить, почему может выполнить в paralell?

ответ

1

Основная идея работников - иметь разные циклы событий, так что код может выполняться параллельно. Вот почему вы видите одновременное выполнение нескольких запросов.

Смежные вопросы