如何扩展 nodejs 应用程序

Posted

技术标签:

【中文标题】如何扩展 nodejs 应用程序【英文标题】:How to scale a nodejs app 【发布时间】:2015-05-23 21:25:32 【问题描述】:

为了预测我们的开发成本,我和我的新同事想预测我们的托管需求

我们的应用程序将是一个公共应用程序,涉及越来越多的用户

我们发现,对于 node.js 应用程序,我们基本上有 2 个选项:

作为服务,例如 Heroku 使用原始服务器,专用或虚拟服务器,例如法国的 OVH

规格:

服务器本质上是一个后端,通过socket.io(使用sails.js'实现sails.io.js)提供“类似REST”的资源。

对于每个用户来说,用法基本上是:

进行搜索:服务器接受“request”(套接字事件),处理合理的计算(涉及一些数学),返回合理的数字(responses”(套接字事件),取自数据库,为 json 用户会在原始使用中发出 3 个请求) 每个用户会每天使用该应用程序两次 在后台,每个用户都会将其位置发送到服务器,仍然通过套接字“类似 REST”,例如,每分钟

问题

我只是想知道,猜测我们必须购买的服务器类型的基本流程是什么?我们希望“随着我们的增长而扩展”服务器,但我们仍然需要制定计划,例如,我无法真正弄清楚如何预测对 10000 个用户的需求。

这是关于计算“每个用户”的服务器性能单位(Ram、Cpu、“Dyno”)和网络单位(带宽)吗?

非常感谢=)

【问题讨论】:

【参考方案1】:

这是 7 个月前的事,但作为答案,请尝试使用 Google Compute Engine,并使用自动缩放功能随时缩放使用。 Node.js 在它上面工作,你可以安装你需要的任何其他包。

Google 也会为您处理负载平衡。您需要支付额外费用,但可以节省大量研究/开发扩展问题的时间。

【讨论】:

嘿。实际上这里关心的是估计规模成本。我知道 Heroku、AWS 或 google one 等弹性云解决方案,但我想估算一下它们的成本。

以上是关于如何扩展 nodejs 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

nodejs v8 新特性——利用N-API编写c++ node扩展

NodeJs 专有库和扩展

如何为Chrome的NodeJS专用DevTools添加扩展

如何使用 Nodejs 和 spawn 在 Windows 10 上以管理员身份运行一些 CMD 命令?

如何使用nodejs读写excel文件

如何在express(nodejs)中处理blob