0

我正在尝试在 OpenFaas 上部署一个长时间运行的 Springboot 服务并面临Upstream HTTP request error: Post http://127.0.0.1:8082/: EOF

我有一个公开 API 的 springboot 服务。要在 openfaas 上部署此服务,请执行以下步骤。

  1. 该服务依赖于放置在根项目文件夹中的外部依赖项。
  2. 更新了 build.gradleimplementation fileTree("$folderPath")以包含外部依赖项。
  3. 在 Handler 类中启动了 Springboot 应用程序运行过程,但是Upstream HTTP request error: Post http://127.0.0.1:8082/: EOF在我们尝试调用 Handler 时得到了。
  4. 尝试增加 exec_time,但它有帮助。
  • 我们如何在 OpenFaas 中运行一个长时间运行的 springboot 进程?
  • 如果在构建时加载了依赖项,它们是如何在运行时在 docker 容器内解决的?
4

1 回答 1

0

Go http 客户端通常会在请求超时的情况下返回 EOF。OpenFaas 看门狗、网关、队列工作者,都在内部使用 GO http 客户端。很可能您的 OpenFaas 安装没有为长时间运行的功能正确配置。

您可以通过立即返回 Springboot API 来仔细检查这一点,看看是否有效。

你可以参考这个来配置你的 OpenFaas 来运行长时间运行的函数。对于长时间运行的函数,这是一个出色的示例函数。

对于您的第二个问题,如果您的 faas 构建成功(并且我假设您正在使用标准 OpenFaas Java 模板),它会将 gradle build 的完整输出打包到 docker 容器中,该容器也应该包含您的所有依赖文件。

于 2021-02-20T07:21:43.940 回答