繁体   English   中英

heroku爱好dyno上的node.js,局限性

[英]node.js on heroku hobby dyno, limitations

我无法掌握将节点与Heroku Hobby dyno一起使用时的性能限制,该类型仅包含1个Web worker。

我的heroku服务器用于响应发布请求并启动服务器到服务器的通信。 我们将其称为“过程”。

Node.js是javascript,只有一个事件循环,是否表示如果myheroku服务器尚未完成该过程,它将无法启动另一个事件循环?

在客户端,用户发送一个发布请求,该请求启动“流程”。

如果过程未完成,第二个用户是否可以发送另一个发帖请求并期望发生任何事情? 我的服务器是否会挂起,直到完成第一个过程?

在我的初步测试中,两个用户几乎同时发送请求似乎没有问题,所以我不确定我会遇到什么限制

根据Heroku的文档,这不是问题,您将能够处理多个请求而Node.js不会出现问题。

测功机和要求

单个dyno每秒可以处理数千个请求,但是性能很大程度上取决于您使用的语言和框架。

单线程,非并发Web框架(如其默认配置中的Rails 3)可以一次处理一个请求。 对于平均需要100毫秒处理每个请求的应用程序,这意味着每个dyno每秒大约10个请求,这不是最佳选择。

不建议将单线程后端用于生产应用程序,因为它们对并发请求的处理效率低下。 开发和运行生产服务时,请选择并发后端。

Java,Unicorn,EventMachine和Node.js等多线程或事件驱动的环境可以处理许多并发请求。 对应用程序进行负载测试是确定请求吞吐量的唯一现实方法。

进一步阅读:

在dynos上: https ://devcenter.heroku.com/articles/dynos#dyno-types

关于作业和排队: https : //devcenter.heroku.com/articles/background-jobs-queueing

异步工作者: https : //devcenter.heroku.com/articles/asynchronous-web-worker-model-using-rabbitmq-in-node

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM