有没有一种方法可以在Google Cloud SQL中模拟MySQL数据库超时?

时间:2020-02-25 00:53:14

标签: mysql jdbc google-cloud-platform google-cloud-sql google-cloud-run

我目前正在开发一个可运行MySQL的Google Cloud Run Web应用程序,但遇到了无法复制的错误。我在隔夜打开它的早晨刷新应用程序后首先遇到了这个问题。

这是错误消息:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:从服务器成功接收到的最后一个数据包是236,899,325毫秒之前。成功发送到服务器的最后一个数据包是236,899,326毫秒之前。大于服务器的配置值“ wait_timeout”。为避免出现此问题,应考虑在应用程序中使用连接之前使其过期和/或对其进行测试,或者增加服务器为客户端超时配置的值,或者使用Connector / J连接属性'autoReconnect = true'。

我了解导致此问题的原因很可能是由于数据库连接在我的应用执行操作之前像在this thread中那样超时。

我打算按照this thread所述通过编辑Cloud MySQL实例来增加等待时间,以期解决该问题。

我想复制这个问题,以便评估将来的解决方案是否可以使用,但是对于复制类似的超时,我找不到很好的答案。

在Google Cloud Platform中,我尝试停止并重新启动与我的应用程序进行通信的数据库,但这并没有重新创建错误。

有人遇到类似的问题吗?如果是这样,我将如何重新创建错误而不必等一夜呢?

1 个答案:

答案 0 :(得分:0)

您应该实施重试系统,而不是尝试复制连接问题。我将尝试在我的应用程序中实现指数补偿,作为实现此目标的第一种方法。

尝试复制该错误的问题在于,由于无法控制的因素,您可能无法再次准确获得此错误。

希望您发现此信息有用。