我们一直在使用 golangdatabase/sql
和github.com/lib/pq
PostgreSQL 集群,这意味着作为复制主服务器的某个数据库服务器在先前的主服务器发生故障后可能是只读副本。
最近,我们的低使用率服务设法在其连接池中保留一个连接(没有会打开第二个连接的并发请求),并且其目标已降级为只读副本。结果,对服务的每个写入操作都失败,直到它重新启动。如果与集群建立了新连接,就不会发生这种情况。
问题是我找不到记录在案的方法来丢弃某些类型错误的连接。唯一database/sql
听起来正确的公共方法是Conn.Close
将连接返回到池而不关闭它。不调用它会导致资源泄漏,最终使池无法使用。有没有一种可持续的方法可以在应用程序需要时摆脱连接?
紫衣仙女
aluckdog
一只斗牛犬
相关分类