我使用 Google Cloud Run 服务在 docker 容器中托管我的 Spring 应用程序。数据库在 Google SQL 服务中运行。我的问题是从应用程序到数据库的请求最多可能需要 2 分钟。查看Google Cloud Run log (长请求被涂成黄色)。这是 Dockerfile和 Docker Compose File
数据库非常空,它包含大约 20 个表,但每个表只包含几行,因此没有请求大于几 kB。更奇怪的是,在重新部署应用程序后,请求又变快了。但几分钟、几小时甚至一整天后,请求再次变慢。当我在我的本地机器上启动应用程序时,请求总是很快(对我的本地 SQL 和 Google SQL 实例),从来没有任何慢速连接。我的应用程序中不需要任何数据库请求的所有操作仍然很快,只需几毫秒。
两种服务都在同一区域(欧洲-西部)运行,运行服务的 CPU 使用率从不高于 15%,Google SQL 从不超过 3%。 Google SQL 使用 1 个 CPU 和 3.75GB,Google 运行服务有 4GB RAM 和 2 个 CPU。但增加 Google Run Service 和 Google SQL 的能力并不能改善请求延迟。 Google Cloud SQL 使用的是 MySQL 5.7(就像我的本地数据库)。
在查看日志后,filtered Google SQL log 中仅显示警告(我真的不知道为什么会这样)。此外,这是我在 Spring config 中的数据库连接设置。 .但我认为这没有任何影响,当我将本地应用程序连接到我的本地 SQL 实例或 Google SQL 实例时,配置工作完美。
但也许你们中有人有想法?
最佳答案
虽然不是真正的答案,但在 Google 上有一个 bug 正在跟踪这个问题: https://issuetracker.google.com/issues/186313545
这实在是在伤害我们的客户体验,让我们对云跑的服务质量失去信任。如果没有来自 Google 的反馈来了解他们是否正在解决问题,则更是如此。
编辑:
根据 https://issuetracker.google.com/issues/186313545 中的交互,问题现在似乎已解决
关于database - 从 Google Cloud Run 服务中的 docker 容器到 Google Cloud SQL 的请求最多需要 2 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67121645/