【发布时间】:2015-05-06 14:08:02
【问题描述】:
是否有任何特殊的调优技巧来加强基于 hapijs 框架构建的 API?
特别是如果您有大量并发请求(+10000/秒)正在访问数据库?
- 我正在使用 PM2 在“集群模式”下启动我的进程,以便能够对服务器上的不同内核进行负载平衡
- 我不需要提供静态内容,所以没有 apache/nginx 代理
更新 17:11
以 1000 个请求/秒(使用 loader.io)运行测试会产生这条曲线 - 到目前为止还可以。但我想知道是否还有改进的余地。
(硬件:64gb / 20核数字海滴)
【问题讨论】:
-
出于安全原因,您应该考虑使用反向 nginx 代理,即使没有静态内容。此外,当使用反向代理时,您可以在不同的端口上多次启动应用程序,并使用 nginx 进行负载平衡。
-
@Qualcuno 安全现在不是问题。我想知道 nginx 部分是否不会比性能增益增加更多开销……但我会尝试使用 PM2/hapi vs nginx/hapi 运行一些测试。
-
这就是我发表评论而不是答案的原因。这只是一个提示,恕我直言,拥有反向代理总是一个好主意。我们仍然使用 PM2 来分叉(而不是集群)应用程序的多个实例并保持它们处于活动状态,但负载平衡由 nginx 完成。
-
无论如何,作为“加强您的 api”的提示,请检查内存使用情况并确保您没有泄漏内存。
-
你真的需要达到 DB 10000+/秒吗?听起来像是一个使用hapijs.com/tutorials/caching的机会