我正在免费的Dyno上运行一个基于 NodeJS 的应用程序,连接到 mongohq-MongoDB 。我想将其迁移到使用业余爱好Dyno,这样做的动机不仅是避免睡眠时间,而且是为了实现更高的 HTTP 流量吞吐量。
阅读Scaling文档和Procfile文章让我对如何在 Heroku 上进行扩展感到困惑。
在Procfile文章中,据说Web进程类型是唯一将从 Heroku 路由网格接收 HTTP 流量的进程。
所以我的问题是:
- 当已经有一个爱好Dyno 正在运行时,执行“heroku ps:scale web+2”将导致同一 Dyno 上有 +2 个 Web 进程,或者添加两个爱好Dyno(总共三个爱好Dyno)?
- 总共三个爱好Dynos 意味着 3 个 Web 进程和 27 个非 Web 进程可用?
- 在这个答案中,建议使用cluster模块来分叉线程来处理 HTTP 请求,如何确定应该创建的工作线程数(在循环中
// fork worker processes)?
- 我应该如何决定何时水平扩展我的应用程序(添加更多相同类型的 Dyno)或垂直扩展(更强的 Dyno,如标准 1X/2X)
- 应该触发水平缩放来处理更多的请求?
- 应触发垂直缩放以处理较繁重的处理(需要更多计算资源来响应相应的请求?)
注意,
在这个答案的“缩放”部分中,Dynos 的结果对于上面的问题 …