node.js on heroku hobby dyno,limits

时间:2017-01-09 00:06:03

标签: javascript node.js heroku concurrency scaling

我无法掌握使用带有Heroku Hobby dyno的节点的性能限制,这种类型只包含一个Web工作者。

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

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

客户端,用户发送一个帖子请求,启动“过程”。

如果流程未完成,第二个用户是否可以发送另一个帖子请求并预计会发生什么事情?我的服务器会挂起,直到第一个进程完成吗?

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

1 个答案:

答案 0 :(得分:2)

根据Heroku的文档,这不是问题,您将能够在没有Node.js问题的情况下处理多个请求。

  

Dynos和请求

     

单个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