我使用Google Cloud Run服务在docker容器中托管我的Spring应用程序。该数据库正在Google SQL服务中运行。我的问题是,从应用程序到数据库的请求可能需要长达2分钟的时间。请参阅Google Cloud Run日志(长请求被涂成黄色(。这是Dockerfile和Docker Compose File
数据库非常空,它包含大约20个表,但每个表只包含几行,所以没有一个请求大于几kB。更奇怪的是,在重新部署应用程序后,请求再次快速。但几分钟、几个小时甚至一整天之后,请求再次变慢。当我在本地机器上启动应用程序时,请求总是很快(到我的本地SQL和Google SQL实例(,从未有过任何缓慢的连接。我的应用程序中所有不需要任何DB请求的操作仍然很快,只需要几毫秒。
这两个服务都在同一地区(欧洲西部(运行,运行服务的CPU使用率从未超过15%,谷歌SQL的CPU使用量从未超过3%。谷歌SQL使用1个CPU和3.75GB,谷歌运行的服务有4GB RAM和2CPU。但是,增加Google Run Service和Google SQL的功能并不能改善请求延迟。谷歌云SQL正在使用MySQL 5.7(就像我的本地数据库一样(。
在看到日志后,过滤后的Google SQL日志中只显示警告(我真的不知道为什么会发生这种情况(。此外,这里还有我在Spring配置中的DB连接设置。但我不认为这有任何影响,当将我的本地应用程序连接到我的本地SQL实例或Google SQL实例时,配置非常有效。
但也许你们中的一个有主意?
虽然不是真正的答案,但谷歌有一个错误正在跟踪这个问题:https://issuetracker.google.com/issues/186313545
这确实伤害了我们的客户体验,并使我们对云运行的服务质量失去了信任。如果谷歌没有反馈他们是否在解决这个问题,情况就更糟了。
编辑:
根据https://issuetracker.google.com/issues/186313545