henrycjchen / blog

henry's blog
https://henrycjchen.github.io/blog/docs/
0 stars 0 forks source link

nodejs: child_process & cluster #17

Open henrycjchen opened 4 years ago

henrycjchen commented 4 years ago

cluster 利用 child_process.fork 方法创建 node 子进程,同时集成了自动控制负载均衡的方式 负载均衡有两种:

第一种方法(也是除 Windows 外所有平台的默认方法)是循环法,由主进程负责监听端口,接收新连接后再将连接循环分发给工作进程,在分发中使用了一些内置技巧防止工作进程任务过载。

第二种方法是,主进程创建监听 socket 后发送给感兴趣的工作进程,由工作进程负责直接接收连接。

理论上第二种方法应该是效率最佳的。 但在实际情况下,由于操作系统调度机制的难以捉摸,会使分发变得不稳定。 可能会出现八个进程中有两个分担了 70% 的负载。

  1. http://nodejs.cn/api/cluster.html