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