node.js - GCP Cloud Run 对使用 http2 的长时间运行请求产生间歇性 503 错误
问题描述
当为大文件调用我的云运行服务(服务上启用了 http2!)并取消一些请求时,我收到间歇性的 503 错误。这个问题与负载无关(用 apache bench 测试)。我试图将并行请求计数降低到 1。我们的测试人员首先遇到了由于 api 服务器的 503 错误而导致 CORS 错误的测试人员。
我的 curl 测试设置:在这些长时间运行的请求期间请求一个大文件(5 个并行请求),我开始并取消(SIGTERM)对同一文件的 curl 请求
我间歇性地遇到 503 错误。20 次运行,5 次并行下载(总共 100 个请求),大约 5-15 次产生 503 错误
我的设置:节点 14,Fastify 3.15
解决方案
经过长时间的测试和挠头,解决方案很简单。节点的 http2SessionTimeout(通过 fastify 选项设置)是解决方案。默认为 5 秒。这产生了上述错误。我已经尝试了节点默认值 0。这产生了一个无法使用的云运行服务器。
解决方案是将 http2SessionTimeout 设置为 10 分钟。
推荐阅读
- jupyter-notebook - 尝试运行 jupyter notebook 时出错:导入错误:没有名为 jupyter_core.command 的模块
- amazon-ec2 - AWS - 网络性能与 aws amazon 提到的不相符
- python - BeautifulSoup 可能无法解析 html 文档中的表格吗?
- android - Firebase 实时数据库按子查询和分页结果
- ios - 将不同的单元格对象插入 IndexPath
- python - 我如何使用 django 进行此查询
- node.js - 如何在不知道服务器上的数据量的情况下知道要发出多少请求
- xamarin - 来自服务器的无效状态。可能伪造!Xamarin.Auth 中的错误
- android - Android Studio - 如何摆脱不同大小写的重复包?
- c# - 如何使用在 C# 中的方法之外实例化的变量?