我无法掌握使用带有Heroku Hobby dyno的节点的性能限制,这种类型只包含一个Web工作者。
我的heroku服务器用于响应发布请求并启动服务器到服务器的通信。我们称之为“过程”。
Node.js是javascript并且只有一个事件循环,这是否意味着如果我的heroku服务器尚未完成该过程,那么它将无法启动另一个?
客户端,用户发送一个帖子请求,启动“过程”。
如果流程未完成,第二个用户是否可以发送另一个帖子请求并预计会发生什么事情?我的服务器会挂起,直到第一个进程完成吗?
在我的初步测试中,似乎两个用户几乎同时发送请求没有问题,所以我不确定我会遇到什么限制
答案 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