【发布时间】:2019-08-06 00:09:05
【问题描述】:
我在我的 nodejs API 服务上使用 Cloud SQL 代理 sidecar。
它似乎工作得很好,除了我大约 1% 的 API 请求返回一个错误,表明数据库连接失败:
connect ECONNREFUSED 127.0.0.1:3306
我的后端日志显示,这是在我的 ORM 尝试连接到数据库时抛出的。
Sidecar 日志没有显示任何内容,相关 CloudSQL 实例也没有显示任何异常(17/4000 个连接、
这可能是什么原因?
编辑:附加信息:
我所有的 pod 都已经运行了好几个小时,重启了 0 次,所以间歇性故障不是暂时的启动故障。
日志显示,自 30 天前以来,这种情况一直间歇性发生。
【问题讨论】:
-
这是否可能在启动时发生,并且 NodeJS pod 启动速度如此之快,并在 cloudsql 代理 pod 完全启动之前尝试连接?
-
否;我已向有关此问题的问题添加了信息。
-
这种情况一直在发生吗?还是最近才发生的?这可能是由于无数的事情最终导致某些连接被丢弃或拒绝,这是可以预料的。从角度来看,服务水平协议规定,如果错误率达到 20%,则该实例将被视为“故障”。考虑到目前的错误率有多高,我认为目前没有理由担心。
-
我们有大约 20 个应用程序(主要是 Java)使用 CloudSQL 代理端汽车,我们没有看到这个问题。您是否使用任何数据库连接池?我已经看到与数据库连接池和空闲连接相关的连接问题被关闭,但通常表现为连接重置错误。
标签: google-cloud-sql cloud-sql-proxy