【发布时间】:2015-01-19 05:20:30
【问题描述】:
我正在制作一个聊天应用程序。为了扩展和使用所有内核,我正在创建多个服务器,这些服务器正在侦听基础设施提供的相同端口以进行侦听。每个信息都是in memory。
但是,有没有可能让我们说.. A and B 正在互相聊天,并且在 process1 和 X and Y 中有信息正在聊天,并且在 process2 中有信息。
我的问题是:
- 程序是否竞争每条消息?如果有新消息来自
A,它可以转到没有A或B信息的process2。
或者它是否取决于我是否使用简单的http 消息上面的问题会发生但如果我使用web-sockets 它不会发生。
我正在使用node.js,尽管我认为这是一个独立于语言的问题。
所以,代码是这样的:
if (cluster.isMaster) {
// Fork workers.
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
} else {
http.Server(function(req, res) { ... }).listen(8000);
}
我是否应该只制作一个listening-process,它的作用类似于intelligent load-balancer,将消息发送到正确的进程?
【问题讨论】:
-
@downvoter 否决这个问题的任何 cmets/原因?
标签: node.js networking process load-balancing