首页 > 解决方案 > Heroku 上的 ExpressJS 随机超时

问题描述

我在 Heroku 上有一个 Express Node API。它有一些开放的路由向另一个 Web 服务器发出上游请求,然后执行一些查询并返回数据。

所以客户端->Express->Apache->DB2。

这在 Heroku Hobby dyno 上运行了几个月。然而,现在我们暴露了另一条路由,并且有更多的客户端请求进入。Heroku 然后抛出 H12 错误(因为 Express 应用程序没有在 30 秒内返回响应)。

我在 Express 应用程序中使用 axios 向 Apache 发出请求并获取数据。但是,我在日志中没有看到任何失败。没有发现任何错误,可以为我提供更多关于为什么事情可能会超时的详细信息。调查了 Apache->DB2 方面的问题,瓶颈似乎并不存在,几乎可以肯定是在 Express 方面。

根据 Heroku 的建议,我将应用程序连接到 NewRelic,但尚未获得任何见解。听起来这可能是 Express 的可扩展性问题,并且在短时间内有大量新请求进入?没有特别多的。即最高〜50 /分钟。加强 Heroku dyno 会有什么作用吗?还有其他方法可以实际查看 Express 的情况吗?

似乎 10-15% 的客户端请求正在接收超时(并且似乎发生在有大量传入请求的时候)

谢谢!

标签: javascriptnode.jsexpressheroku

解决方案


推荐阅读