如何安全地丢弃 golang 数据库/sql 池连接,例如当它们指向只读副本时?

您所在的位置:网站首页 go调用so库 如何安全地丢弃 golang 数据库/sql 池连接,例如当它们指向只读副本时?

如何安全地丢弃 golang 数据库/sql 池连接,例如当它们指向只读副本时?

#如何安全地丢弃 golang 数据库/sql 池连接,例如当它们指向只读副本时?| 来源: 网络整理| 查看: 265

我们一直在使用 golangdatabase/sql和github.com/lib/pqPostgreSQL 集群,这意味着作为复制主服务器的某个数据库服务器在先前的主服务器发生故障后可能是只读副本。

最近,我们的低使用率服务设法在其连接池中保留一个连接(没有会打开第二个连接的并发请求),并且其目标已降级为只读副本。结果,对服务的每个写入操作都失败,直到它重新启动。如果与集群建立了新连接,就不会发生这种情况。

问题是我找不到记录在案的方法来丢弃某些类型错误的连接。唯一database/sql听起来正确的公共方法是Conn.Close将连接返回到池而不关闭它。不调用它会导致资源泄漏,最终使池无法使用。有没有一种可持续的方法可以在应用程序需要时摆脱连接?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3