Как Node.js / модуль кластера передает новые соединения из процесса master / parent, дочерних процессов?

Как именно это работает под капотом / на уровне ОС (прежде всего в реализациях Unix / с точки зрения API сокетов)?

Документация модуля кластера гласит:

«мастер-процесс прослушивает порт, принимает новые соединения и распределяет их по рабочим кругам»

Означает ли это, что только мастер-процесс обрабатывает / вызывает accept () при входящих подключениях, а затем передает возвращаемый дескриптор сокета в предварительно распавшийся дочерний процесс через некоторый механизм IPC (сокеты домена Unix?), Где он предположительно зарегистрирован локальным ( к этому процессу) механизм мультиплексирования (например, экземпляр epoll)?

Я пытаюсь лучше понять внутреннюю работу Node.js, но на этом уровне не может найти много определенной информации. Буду признателен за любую оказанную помощь.

благодаря

One Solution collect form web for “Как Node.js / модуль кластера передает новые соединения из процесса master / parent, дочерних процессов?”

См. child.send() в модуле childjprocess nodejs. В двух словах:

 child.send('socket', socket); 

Где 'socket' – это специальное имя сообщения, и вы отправляете ссылку на объект сокета nodejs. Затем Nodejs обрабатывает вещи под обложками в модуле child_process для отправки фактического дескриптора сокета ОС дочернему процессу, а затем подключает к нему новый объект сокета nodejs на другом конце.

И вот ссылка на статью на тему: Отправка сокета в раздвоенный процесс в Node.JS.

  • Как программы UNIX взаимодействовали друг с другом, до изобретения трубы?
  • Служит ли прослушивание команды для Unix Datagram Sockets?
  • Почему по умолчанию umask - 002 или 022 во многих Unix-системах? Кажется неубедительным по умолчанию
  • Ли Linux автоматически очищает абстрактные сокеты домена?
  • Является ли подкаталог / tmp подходящим местом для сокетов Unix?
  • Как проверить упавшие пакеты на процесс / сокет, когда буфера сокета переполняется для сокетов домена UNIX?
  • Переполнение доменных сокетов UNIX?
  • «Linux поддерживает динамическую загрузку модулей ядра. »
  • Как проверить подлинность `getty` на linux?
  • ssh в гнезде unix
  • Как сообщить размер очереди приема для сокетов AF_UNIX
  • Interesting Posts

    Kickstart не устанавливает X на rhel 7.2

    Максимальный размер пароля в AIX 6.1

    вызывая перезагрузку из пользовательского пространства

    Что позволяет вводить команду, пока предыдущая команда все еще работает на переднем плане?

    Какая системная цель или служба заполняет / dev / disk / by-uuid на el7?

    новые дистрибутивы вызывают деградацию сегмента старого двоичного кода

    rsyslog только делает файлы журналов в / var / logs

    изменить раскладку клавиатуры локально

    Как извлечь часть текста из файла?

    Yast не может получить доступ к репозиториям программного обеспечения, даже если URL-адреса доступны в браузере, а системная дата верна

    Pentesting с виртуальной машины, скрывая хост

    проблемы с загрузкой программного обеспечения в Ubuntu на Windows

    Keepalived – возможно ли изменить каталог файла журнала?

    Создание и настройка пользовательской раскладки клавиатуры

    Какой инструмент я могу использовать для создания резервных копий?

    Linux и Unix - лучшая ОС в мире.