【问题标题】:NodeJS + CloudSQL Postgres - Connection terminates randomlyNodeJS + CloudSQL Postgres - 连接随机终止
【发布时间】:2018-08-03 16:50:42
【问题描述】:

我们正在使用 Google CloudSQL Postgres,而且我们的后端 API 似乎在随机间隔(1-4 天之间)与 CloudSQL 断开连接。直接连接到 CloudSQL Postgres 实例 IP 地址。

会不会是 CloudSQL 断开了空闲连接?我们对 API 进行健康检查,每分钟对数据库运行一个简单的 SELECT

我们正在使用knex,据我所知,它使用tarn 来管理连接。

对于 CloudSQL Postgres 的连接池是否有任何推荐设置?

【问题讨论】:

  • 您能否分享实例的日志,涵盖这些连接终止发生的时间间隔?
  • @Yurci 遥遥领先 :) 在这些时间段内,CloudSQL 实例的日志为空。

标签: node.js postgresql google-cloud-platform google-cloud-sql knex.js


【解决方案1】:

对于使用 CloudSQL Postgres 的连接池是否有任何推荐设置?

不,没有。

无论如何 knex 应该注意,当连接被服务器关闭并自动从连接池中丢弃它,从而隐藏最终用户的断开连接。

【讨论】:

  • 是的,这也是我的理解,所以我不知道为什么会这样。我还得到“事务完成,使用 DEBUG=knex* 运行”——这些是随机发生的,我认为这也可能是连接断开的结果。
  • 明确地说,这只发生在 CloudSQL 中。我可以毫无问题地在本地运行几天。
  • 我们的 API 机器位于 GCloud Compute Engine 上,默认 TCP 连接超时为 10 分钟。如果发生这种情况,Knex 会处理吗?
  • 您可以设置TCP keepalive 来克服连接超时。
  • CloudSQL 不会断开空闲连接。你会尝试 TCP keepalive 并更新你的帖子吗?
猜你喜欢
  • 2022-08-19
  • 2018-09-16
  • 2011-05-09
  • 1970-01-01
  • 1970-01-01
  • 2022-12-14
  • 1970-01-01
  • 2013-03-15
  • 2021-06-13
相关资源
最近更新 更多