4

我按照这个例子创建了一个 Node.js 集群。

我已经console.log(cluster.worker.id)输入了我的 API 调用来确定哪个工作人员正在接受请求。

所有工作人员都已成功启动(我有 4 个核心,所以我创建了 4 个工作人员),但请求始终由一名工作人员处理。

有谁知道为什么会这样?我使用 Windows 7 操作系统并拥有 0.8.8 版本的 Node。

4

1 回答 1

3

您没有看到任何工作人员的切换,因为 Cluster 认识到它没有处于高负载状态,并且不会打扰切换工作人员。当进程处于高负载状态时,集群会自动进行负载平衡。这是文档中的内容:

当多个进程都accept()在同一个底层资源上运行时,操作系统非常有效地在它们之间进行负载平衡。Node.js 或您的程序中没有路由逻辑,工作人员之间也没有共享状态。因此,重要的是设计您的程序,使其不会过于依赖内存中的数据对象来处理会话和登录等事情。

于 2013-10-14T21:06:02.033 回答