CNode

关于cluster fork多线程任务的疑问

Mmiskolee发布于13 年前最后回复11 年前6 回复7868 浏览0 收藏

我的代码原型是这样的: if(cluster.isMaster){ for(var i=0;i<numCPUs;i++){ cluster.fork(); }

}else{ // fs.appendFile('node_build.log',cluster.worker.id+' ',function(err){}); logic();

}

在 logic当中创建了一个socket.io服务器。 我现在使用http以及websocket 循环大量连接。 log日志得到的结果基本上都是id为4的worker。在系统监视器中,该进程cpu消耗达到30%。 其他进程无动静。求解?

查看回复

回复 (6)

C
ChrisFuck#2·11 年前
B
blackjack#3·11 年前

果断使用多端口+nginx

G
gagahjt#4·13 年前

在 cluster 并非真正的”负载均衡“ ... 测试 socket.io 时~ 同时打开多个浏览器(例如 3) .ctrl+c 同时干掉, 再进去可能会达到你想测试的效果.. 也不是100%

L
liaobin#6·13 年前
引用 gagahjt在 cluster 并非真正的”负载均衡“ ... 测试 socket.io 时 同时打开多个浏览器(例如 3) .ctrl+c 同时干掉, 再进去可能会达到你想测试的效果.. 也不是100%

开多端口模式,你统一入口怎么转发到多个端口上去啊。用额外的工具还是自己写转发啊。@miskolee

参与回复
登录后即可参与回复。登录