Bagaimana tepatnya ini bekerja di bawah tenda / di tingkat OS (terutama dalam implementasi Unix / dari perspektif API soket)?
Dokumentasi modul cluster mengatakan:
“proses master mendengarkan pada port, menerima koneksi baru dan mendistribusikannya ke seluruh pekerja secara round-robin”
Apakah ini berarti proses master sendiri yang menangani/memanggil accept() pada koneksi masuk, dan kemudian meneruskan deskriptor soket yang dikembalikan ke proses anak pra-cabang melalui beberapa mekanisme IPC (soket domain Unix?), di mana itu mungkin terdaftar dengan lokal ( untuk proses itu) mekanisme multiplexing (misalnya instance epoll)?
Saya mencoba untuk mendapatkan pemahaman yang lebih baik tentang cara kerja bagian dalam Node.js, tetapi tidak dapat menemukan banyak info pasti di level ini. Bantuan apa pun sangat dihargai.
Terima kasih
Jawaban yang Diterima:
Lihat child.send()
dalam modul nodejs child_process. Singkatnya, Anda melakukan:
child.send('socket', socket);
Dimana 'socket'
adalah nama pesan khusus dan Anda mengirim referensi ke objek soket nodejs. Nodejs kemudian menangani hal-hal di bawah selimut dalam modul child_process untuk mengirimkan pegangan soket OS yang sebenarnya ke proses anak dan kemudian menghubungkan objek soket nodejs baru ke sana di ujung yang lain.
Dan, inilah referensi ke artikel tentang topik:Mengirim soket ke proses bercabang di Node.JS.