如何解决30 秒后在前端超时使用的技术 -Scala、akka、nginx 和 react/node js
我的申请流程是:
Nginx = > react app = > Nginx => akka http
在 30 秒内执行时,所有其他功能都可以正常工作。
我们创建了一个新的 API 来导出 csv 文件中的患者详细信息,执行此导出请求需要 2.5 分钟。我们为此应用使用了以下技术:Scala、akka、Nginx 和 react/node js 作为前端。
当我点击导出链接时,请求被执行并且能够在日志中看到。但在 30 秒后立即在浏览器控制台上出现错误 GET /export/request 503(服务不可用),承诺块中出现 java 脚本错误。
如果我们尝试直接从 curl 命令访问 API(因为我们一直用于加载患者数据),那么我们也可以从 TEST 站点导出数据(1.8 分钟)。后端没有超时或 503 问题(akka http)
我观察到所有 API 都会出现这个问题,如果它们的执行时间超过 30 秒,那么我们将在控制台上收到 503 错误。我们已经测试在添加 30sec 等待语句后观察到这一点 [Thread.sleep(30sec)]
应用的解决方案:
- 参考 akka 文档后,我将理想超时设置增加到 240 秒。
application.conf:
http {
server {
request-timeout: 240s
idle-timeout: 240s
}
}
它适用于我的本地/开发环境。 /export/ 请求在 2 分钟内执行。
在 TEST 环境中部署此更改后。问题仍然是 30 秒后得到 503。在测试环境中。应用程序正在使用 docker env 运行。
请求流/应用设置:
内部 AWS 负载均衡器 => EC2 实例 => Nginx 代理(列表:80) => 前端应用程序(react js 应用程序)=> 后端(scala 和 akka)
-
经过详细分析,这个问题只有在请求来自前端代理(Nginx-Docker 镜像)时才会出现:在 Nginx/default.conf 中微调所有超时参数,但仍然无法正常工作。
location / { proxy_set_header Host $http_host; proxy_read_timeout 100; proxy_connect_timeout 100; proxy_send_timeout 100; }
以上所有解决方案都不起作用,下载 CSV 时仍然出现 503 错误。
请帮帮我。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。