Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript heroku hobby dyno上的node.js,限制_Javascript_Node.js_Heroku_Concurrency_Scaling - Fatal编程技术网

Javascript heroku hobby dyno上的node.js,限制

Javascript heroku hobby dyno上的node.js,限制,javascript,node.js,heroku,concurrency,scaling,Javascript,Node.js,Heroku,Concurrency,Scaling,我很难理解将节点与Heroku Hobby dyno一起使用的性能限制,这种类型只包含一个web工作者 我的heroku服务器用于响应post请求并启动服务器到服务器的通信。我们称之为“过程” Node.js是javascript,只有一个事件循环,这是否意味着如果我的heroku服务器还没有完成该过程,它将无法启动另一个事件循环 在客户端,用户发送一个post请求,启动“流程” 如果流程未完成,第二个用户是否可以发送另一个post请求并期望发生任何事情?我的服务器会一直挂起直到第一个进程完成吗

我很难理解将节点与Heroku Hobby dyno一起使用的性能限制,这种类型只包含一个web工作者

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

Node.js是javascript,只有一个事件循环,这是否意味着如果我的heroku服务器还没有完成该过程,它将无法启动另一个事件循环

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

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


在我的初步测试中,两个用户几乎同时发送请求似乎没有问题,所以我不确定我会遇到什么限制。根据Heroku的文档,这不是一个问题,你可以处理多个请求,而Node.js没有问题

动态和请求

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

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

不建议在生产中使用单螺纹后端 应用程序,因为它们对并发数据的处理效率低下 请求。在开发和运行时选择并发后端 生产服务

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

进一步阅读:

关于dynos:

关于作业和排队:


异步工作者:

您认为您的应用程序更像是一个被调用的Lambda函数,而不是在Heroku中dyno的工作方式。它可以处理并发请求,并且Heroku也有适当的队列。你可以运行测试,看看你的dyno在阻塞之前可以处理多少请求。我个人使用)。您可以寻找其他选项,但确保在Heroku上运行时偶尔进行测试。像附加组件和其他小细节这样的事情可能会以意想不到的方式影响您的性能。