AWS上相同node.js应用程序的多个实例
AWS上是否有运行同一node.js应用程序的多个实例的选项? 我尝试在我的计算机上运行node.js应用程序的多个实例,但它给了我一个EADDRINUSE错误。当我在代码中更改端口号时,将其另存为新的js文件,这样我就可以运行多个实例。但是我怎么能把这个设定在AWS上呢?AWS Elastic Beanstalk是否有设置此选项的选项?我找不到它 这是我的应用程序的一部分,我在其中与客户端通信,也就是我更改端口号的地方:AWS上相同node.js应用程序的多个实例,node.js,amazon-web-services,multiple-instances,Node.js,Amazon Web Services,Multiple Instances,AWS上是否有运行同一node.js应用程序的多个实例的选项? 我尝试在我的计算机上运行node.js应用程序的多个实例,但它给了我一个EADDRINUSE错误。当我在代码中更改端口号时,将其另存为新的js文件,这样我就可以运行多个实例。但是我怎么能把这个设定在AWS上呢?AWS Elastic Beanstalk是否有设置此选项的选项?我找不到它 这是我的应用程序的一部分,我在其中与客户端通信,也就是我更改端口号的地方: http.createServer(function(request,
http.createServer(function(request, response){
var path = url.parse(request.url).pathname;
if(path=="/getjson"){
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('_testcb(\''+string+'\')');
console.log(new Date() + " - response sent to client");
}
}).listen(port);
或者您有更好的解决方案来运行同一node.js应用程序的多个实例?请注意,多个实例需要共享一个小型数据库。您可能需要使用节点的群集api
var cluster=require('cluster');
var numpus=require('os').cpus().length;
if(cluster.isMaster){
//叉工。
对于(变量i=0;i
您尝试过amazon负载平衡吗?可以找到更多细节。负载平衡器还可以根据流量管理自动扩展。请参阅更多文档 是否要跨多个aws INTSANCE运行节点应用程序的单个副本?您想在一台“服务器”上运行多个副本,所有副本都侦听不同的端口吗?我对这两个选项都感兴趣。基本上,我希望应用程序根据客户端的数量进行扩展,所以客户端的等待时间尽可能少。我对AWS没有太多经验,所以我对这类问题的最佳实践感兴趣?如果您对AWS没有太多经验,那么我建议您在Elastic Beanstalk上部署节点应用程序。它将允许您在多台服务器上轻松运行应用程序,负载平衡器将均匀分配您的站点流量。好的,如果我是对的,这应该适用于任何具有多个核心的处理器?基本上,我希望应用程序根据客户端的数量进行扩展,因此客户端的等待时间尽可能少。我对AWS没有太多经验,所以我对这类问题的最佳实践感兴趣?
var cluster = require('cluster');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
// Fork workers.
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', function(worker, code, signal) {
console.log('Cluster worker ' + worker.process.pid + ' died');
cluster.fork();
});
} else {
http.createServer(function(request, response){
var path = url.parse(request.url).pathname;
if(path=="/getjson"){
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('_testcb(\''+string+'\')');
console.log(new Date() + " - response sent to client");
}
}).listen(port);
}