gpt4 book ai didi

javascript - Nodejs 集群中从工作人员到工作人员的消息

转载 作者:行者123 更新时间:2023-12-01 02:00:43 24 4
gpt4 key购买 nike

当我创建一个集群应用程序时

var cluster = require('cluster');

if (cluster.isWorker) {
console.log('Worker ' + process.pid + ' has started.');
}

if (cluster.isMaster) {
console.log('Master ' + process.pid + ' has started.');

// Fork workers.
for (var i = 0; i < require("os").cpus().length; i++) {
var worker = cluster.fork();
}
}

然后在集群模式下使用 pm2 运行它

pm2 start index.js -i 0

我的 isMaster 部分从未运行,我认为这是由于 pm2 在启动我的应用程序时成为主设备,因此它永远不会成为主设备,所以问题来了。我需要能够在我的工作人员之间进行通信,因为他们保持网络套接字连接,这似乎是广播内容的唯一方式。有哪些选择?

如果我在没有集群模式的情况下运行它(pm2 start index.js),那么一切似乎都按预期执行,但随后我只在 pm2 list 中得到一个进程,其中真是太糟糕了,如果有一种方法可以解决这个问题,并让 pm2 单独显示所有子进程而不使用其集群模式,我也会对此解决方案感到满意。

最佳答案

如果您想使用 process.message,您将无法使用 pm2 集群模式,因为 process.message 向 master 发送消息。

如果要使用pm2集群模式,worker之间必须使用另一种通信方式,例如RedisRabbitMQUnix Sockets.

有一些软件包可以让您非常轻松地设置 IPC 通信,例如:node-ipc

关于javascript - Nodejs 集群中从工作人员到工作人员的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50613865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com