MeteorJS 在 Heroku 上的高响应时间

MeteorJS high response time on Heroku

我是 运行 Heroku 上的 Meteor 应用程序,Heroku 响应时间图表不断充满达到 30 秒限制的高响应时间查询

路由器日志显示所有 30 秒的查询都是某种 sockJS xhr 调用

14 Aug 2021 11:37:33.249334 <158>1 2021-08-14T03:37:32.837295+00:00 heroku router - - at=info method=POST path="/sockjs/950/pwiv10fk/xhr" host=www.abc.com request_id=edbe326a-cddd-4e5e-9347-0f5c1c49651b fwd="121.6.80.103,162.158.165.53" dyno=web.1 connect=0ms service=29493ms status=200 bytes=384 protocol=httpHigh Response Time
14 Aug 2021 11:37:33.358335 <158>1 2021-08-14T03:37:32.837093+00:00 heroku router - - at=info method=POST path="/sockjs/707/7haw05h4/xhr" host=www.abc.com request_id=20ca52a2-5aa4-43fa-bb61-39462eb0ab86 fwd="121.6.80.103,162.158.167.169" dyno=web.1 connect=0ms service=29484ms status=200 bytes=384 protocol=httpHigh Response Time
14 Aug 2021 11:38:03.405335 <158>1 2021-08-14T03:38:02.836998+00:00 heroku router - - at=info method=POST path="/sockjs/950/pwiv10fk/xhr" host=www.abc.com request_id=f3a51bc3-9319-4b80-91b5-ed76bf179493 fwd="121.6.80.103,162.158.166.136" dyno=web.1 connect=0ms service=29480ms status=200 bytes=384 protocol=httpHigh Response Time

实际情况是应用程序上只有少数用户,服务器上没有发生异常 activity。实际上用户也没有遇到变慢的情况,所以我怀疑 Meteor 应用程序上的套接字连接机制正在污染 heroku 响应时间图表,我还必须关闭响应时间慢的警报,因为它们太多了。

这些不间断的 30 秒响应时间调用造成了一个问题,我真的不知道网络应用程序的真实速度。

发生了什么以及如何避免这种情况?

看来这个问题是由 Cloudflare 引入的。他们似乎一直在中断 websocket 连接,导致 Meteor 退回到轮询,这效率不高。