间歇"由同行重置连接" sql postgres

时间:2018-05-14 20:14:05

标签: postgresql go haproxy compose sqlx

在一段时间不活动之后,我的go web服务在执行第一个postgres sql查询时获得了net.OpError消息read tcp x.x.x.x:52086->x.x.x.x:24414: read: connection reset by peer。发生错误后,后续请求将正常工作。

postgres数据库由compose.com托管,在postgres db前面有haproxy。我的go web应用程序使用的是标准的sql和sqlx。

我尝试每隔15分钟运行一次代码db.Ping(),但这并没有解决问题。

为什么go标准sql lib没有处理这些连接丢失?

1 个答案:

答案 0 :(得分:0)

因为没有人明确地写过。此问题的解决方案是设置 db.SetConnMaxLifetime(time.Minute)。我试过了,它有效。连接重置经常发生在 AWS 上,在返回 TCP RST 之后,将不活动限制设置为 350 秒。