NPM群集模块和侦听不同端口

时间:2015-06-02 06:43:03

标签: node.js express npm

我看到很多使用集群npm模块和Express Web服务器的例子。例如:

http://rowanmanning.com/posts/node-cluster-and-express/

但是,如果使用群集模块为每个核心创建新的Web服务器,那么每个实例是否都必须侦听其他端口?我看到的大多数示例似乎都没有增加或更改http服务器正在侦听的端口。在这种情况下,您是否需要代理服务器来路由请求?

此外,当使用具有默认配置的群集时,所有节点都在同一端口上侦听,当我向服务器发出请求时,所有进程(针对每个核心)都会响应。看起来很奇怪,我原以为集群模块会管理它,这样只有一个核心会响应每个请求。

1 个答案:

答案 0 :(得分:3)

不,您不需要代理或增加分叉进程的端口。

使用群集模块时。有一个主进程控制分叉进程。这是通过其他子进程分派请求的主进程。所以没有端口冲突,主进程处理它。

来自node.js文档:

“群集模块支持两种分配传入连接的方法。

第一个(除了Windows之外的所有平台上的默认设置)是循环法,主进程侦听端口,接受新连接并以循环方式在工作者之间分发它们,使用一些内置智能来避免工作进程过载。“

你可以在这里阅读:https://nodejs.org/api/cluster.html#cluster_how_it_works