的当前最佳实践我正在为我们的Web应用程序的一小部分评估nodejs,看起来它很适合。我知道这个节点很年轻,行动很快,但它似乎最终变成了“准备生产”类别。然而,在网上搜索时,我在生产部署中看到的大部分信息已经过时了一年,并且仍然警告有关易碎节点的可能性,并可能意外出错,然后再重新启动一些解决方案。这本身并没有让我感到害怕,但似乎没有正确的方法来将节点可靠地放在那里。将节点生产部署到AWS
回答
cluster
似乎是一个不错的选择,虽然取决于您的操作系统它可能有负载平衡性能差。一个非常简单的版本是这样的:
var cluster = require('cluster')
if(cluster.isMaster) {
var i, worker, workers;
for(i = 0;i < numWorkers;i++) {
worker = cluster.fork();
workers[worker.process.pid] = worker;
}
cluster.on("exit", function(deadWorker) {
delete workers[deadWorker.process.pid];
worker = cluster.fork();
workers[worker.process.pid] = worker;
});
}
else {
//be a real server process
}
这是一个不错的选择,因为它都让你重新启动死的过程一定的稳定性,并为您共享加载多个进程。请注意,cluster
基本上会修改server.listen,以便工作人员都在监听来自正在进行侦听的主服务器的事件。这是“免费”负载平衡的来源。
Cluster文档可以在这里找到:http://nodejs.org/api/cluster.html
这也可能是值得拥有的主进程处理几个信号,如果你希望能够触发某些事件,比如杀死并重新启动所有的进程,或者杀死所有进程并关闭。
这被标记为实验。你有什么经验在生产中使用它? –
@RussellLeggett是的,我使用Trello(https://trello.com),它使用'cluster'的方式与此非常相似。我们已经使用了它一年多了,我们看到的唯一问题(使用'cluster')是我在文章中提到的负载平衡问题。 –
@RussellLeggett我相信“稳定性:实验性”是指节点版本之间的API稳定性,而不是运行稳定性,但我可能是错的。 –
我目前正在将node.js应用程序转换为高度可扩展的社交媒体应用程序的生产过程。要创建一个非平凡的部署解决方案,我正在使用AWS Elastic Beanstalk。节点AWS文档可以在这里找到[http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.html]。
我已经在我的测试环境中尝试了这一点,虽然它可行,但它不是一个简单或易于遵循的过程。特别是我在使用虚拟私有云进行配置时遇到了一些问题。另外,由于该服务有点新,所以没有大量信息和故障排除建议可供免费使用 - 当然这可以通过购买亚马逊的支持来解决。
的弹性魔豆部署确实出现为您提供以下内容:
- 如果您有资格自由层的开发环境。
- 适用于节点应用程序和节点体系结构的可扩展的EC2部署。
- 跨环境的一致部署(即dev,test,uat,production)。
- 监测。
- 部署的重复性和自动化。
- 1. 将Docker容器部署到生产
- 2. 需要将MVC App部署到生产
- 3. git +部署到生产
- 4. ClickOnce部署到生产
- 5. 将.war部署到AWS
- 6. Dockerfile - 将MEAN部署到AWS
- 7. 将REST API部署到AWS
- 8. 将spark-jobserver部署到BlueMix Spark节点
- 9. 我应该将Glimpse部署到生产站点吗?
- 10. kubernetes生产部署docker多节点还是ubuntu裸机?
- 11. Django生产部署
- 12. Node.js生产部署
- 13. IIS生产部署
- 14. 果园部分部署到生产
- 15. 防止部署到入口节点,只能部署到其他节点
- 16. 使用React on Rails将资产部署到生产
- 17. NodeJS/Express + HTTPS:如何将密钥和证书部署到AWS EC2节点?
- 18. 如何部署reportportal到生产环境
- 19. 如何部署到生产webpack + Rails?
- 20. Excel Interop C#和部署到生产箱
- 21. Symfony2部署到生产使用Capistrano 3
- 22. 通过maven部署到生产
- 23. 从SVN部署代码到生产
- 24. 部署更新到生产node.js代码
- 25. 字体后部署到生产环境
- 26. Capistrano部署到舞台和生产
- 27. 将ReactJS项目部署到AWS EC2
- 28. 如何将bot部署到AWS?
- 29. 如何将cloudfoundry部署到AWS?
- 30. 将Python应用程序部署到AWS
我也很想听到这个消息。我听说过永远使用运行节点,但就是这样。 –