Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 对等连接重置/Postgres连接过多导致管道断开_Postgresql_Go_Networking_Connection Pooling_Psql - Fatal编程技术网

Postgresql 对等连接重置/Postgres连接过多导致管道断开

Postgresql 对等连接重置/Postgres连接过多导致管道断开,postgresql,go,networking,connection-pooling,psql,Postgresql,Go,Networking,Connection Pooling,Psql,使用带有两个并发连接的sqlx,我很快就遇到了打开的连接太多的问题。限制db.db.MaxOpenConnections实际上解决了这个问题,并激活了我希望的连接池 现在,在一些机器上,我们在测试中观察到,该测试准确地测试了太多打开的连接不会发生不同的错误: read tcp [::1]:54883->[::1]:5432: read: connection reset by peer read tcp [::1]:54886->[::1]:5432: read: connectio

使用带有两个并发连接的
sqlx
,我很快就遇到了
打开的连接太多的问题。限制
db.db.MaxOpenConnections
实际上解决了这个问题,并激活了我希望的连接池

现在,在一些机器上,我们在测试中观察到,该测试准确地测试了太多打开的连接不会发生不同的错误:

read tcp [::1]:54883->[::1]:5432: read: connection reset by peer
read tcp [::1]:54886->[::1]:5432: read: connection reset by peer
read tcp [::1]:54884->[::1]:5432: read: connection reset by peer
read tcp [::1]:54887->[::1]:5432: read: connection reset by peer
read tcp [::1]:54885->[::1]:5432: read: connection reset by peer
read tcp [::1]:54888->[::1]:5432: read: connection reset by peer
…

Postgres日志没有透露任何信息。这可能发生在网络堆栈上吗?我还可以做些什么来调试它?我无法在本地复制它。

是否使用全局数据库句柄?或者每个请求打开一个?您是否应该关闭
*sql.Rows
?在循环执行
*sql.Rows
时是否执行新查询?@mkopriva sqlx会处理这些问题。这是一个db句柄你的postgres可以接受的最大连接数是多少?也许这是一个真实的案例。@LuisMuñoz 50。如果问题出现在Postgres的末尾,我是否会在日志中看到错误消息?db上的Doc()发出警告:
请确保调用rows.Close()将连接返回到池
。这可能是你的原因吗?