You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud Run上NodeJS应用连接数据库间歇性失败求助

Google Cloud Run 实例启动时间歇性数据库连接失败问题

我在Google Cloud Run中运行多个Node.js v16.16版本的应用,这些应用通过带有静态IP的VPC连接器连接Google Cloud SQL服务器和MongoDB Atlas集群,该静态IP已被加入两者的白名单。

当新实例启动时,会遇到间歇性数据库连接失败问题,表现得仿佛IP未被白名单收录。使用Mongoose连接时会出现以下错误:

MongooseServerSelectionError: Server selection timed out after 30000 ms at NativeConnection.Connection.openUri

使用Sequelize连接时则会出现:

Error connecting MySQL: SequelizeConnectionError: connect ETIMEDOUT

经过测试、日志记录和配置检查,已确认以下信息:

  • 失败会连续出现数分钟,之后恢复正常连接
  • Mongoose连接失败时,Sequelize并非总会失败;且只有Mongoose连接失败时,Sequelize才会出现失败情况
  • 连接来自正确的IP地址,且具备互联网连接
    • 已在连接数据库前添加对https://api.ipify.org?format=json的HTTP请求并记录结果
    • Cloud Run应用已配置为通过VPC连接器路由所有出站流量
  • VPC连接器未过载
    • 连接器配置最大实例数为10,当前仅2个处于活跃状态
    • 流量未超过数KiB/s
  • MongoDB Atlas集群有足够的新连接空间
    • 每个副本支持>1500个连接,当前主节点仅约150个连接,从节点约50个
    • 副本CPU使用率未超过25%,平均约5%
  • 使用笔记本电脑上的客户端应用,通过已加入白名单的VPN连接MySQL数据库和MongoDB Atlas集群,未出现任何问题

间歇性连接失败会导致实例启动失败,用户收到503错误响应,这已对业务造成影响。

版本信息

  • Node: v16.16.0
  • Mongoose: v6.4.0
  • Sequelize: v6.21.0

内容的提问来源于stack exchange,提问作者Milan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 15:57:15