database - 从 Google Cloud Run 服务中的 docker 容器到 Google Cloud SQL 的请求最多需要 2 分钟

标签 database spring-boot docker google-cloud-sql google-cloud-run

我使用 Google Cloud Run 服务在 docker 容器中托管我的 Spring 应用程序。数据库在 Google SQL 服务中运行。我的问题是从应用程序到数据库的请求最多可能需要 2 分钟。查看Google Cloud Run log (长请求被涂成黄色)。这是 DockerfileDocker 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/

相关文章:

php - 这不是 phpMyAdmin 中的数字错误

java - Spring Boot - Swagger - Swagger 不会将标准值更改为多模块项目的 ApiInfo/GlobalResponse

spring-boot - Spring Boot Gradle Kotlin构建

docker - 如何使用 Go SDK 将 `--gpus all` 选项传递给 Docker?

docker - 在Bash中检查Docker实例

ruby - $ GEM_HOME和$ GEM_PATH在旅客中设置错误

php - 交易数据库中的多值属性

database - 在 noSQL DynamoDB 中存储产品库存

sql - 使用 SQL 检查两个表并查找不在两个表中的值

java - Spring Boot 实体的自定义自动配置