我正在致力于在我正在从事的项目中启用集群支持。这个问题直接来自集群模块上的 Nodejs 文档中的一个语句:
来自:https ://nodejs.org/api/cluster.html#cluster_cluster
请注意,在 Windows 上,尚无法在 worker 中设置命名管道服务器。
- 这到底是什么意思?
- 这意味着什么?
从我所做的文档和其他研究来看,我不清楚这种限制的实际实际后果。
我正在致力于在我正在从事的项目中启用集群支持。这个问题直接来自集群模块上的 Nodejs 文档中的一个语句:
来自:https ://nodejs.org/api/cluster.html#cluster_cluster
请注意,在 Windows 上,尚无法在 worker 中设置命名管道服务器。
从我所做的文档和其他研究来看,我不清楚这种限制的实际实际后果。
进程可以公开命名管道作为与其他相关方进行通信的一种方式 - 即。nginx 服务器可以公开一个命名管道,所有传入的请求都将在其中发送(只是一个想法——我不确定 nginx 是否可以做到这一点)。
从 Node.js 进程(虽然不是集群工作者),您可以启动一个 http 服务器(或者甚至是一个普通的 TCP 服务器,就此而言),它监听发送到这个命名管道的消息:
http.createServer().listen('\\.\pipe\nginx')
.listen()
该方法签名的文档在这里,特别是这部分是有趣的:
启动服务器以侦听已绑定到端口、UNIX 域套接字或Windows 命名管道的给定句柄上的连接
但是,根据警告,集群工作人员无法使用此功能,原因超出我的理解。
这是 Node.js 中的一个相关提交,它暗示了这个限制。您可以通过打开集群的 Markdown 文档找到它,查看 git blame 并进一步了解历史,直到您到达引入此注释的提交。
正常的进程间通信不受此限制的影响,因此集群在 Win32 上的工作方式与在 Unix 系统上的工作方式相同。
注意:经过进一步思考,该 nginx 示例有点误导,因为据我了解,命名管道不能用于有状态的双向通信。这只是一种方式,即。源-> 侦听器。但我确实希望我传达了限制背后的总体思路。