【发布时间】:2020-01-28 08:39:16
【问题描述】:
我正在使用节点Postgress,我想使用connection pooling。我有这样的简单存储库:
初始化
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
})
await pool.connect()
示例 SELECT 代码..
export default (
{
pgPool,
}: Object
) => {
return {
getExampleData: async (uid: string) => {
const result = await pgPool.query('SELECT data FROM public.results_table WHERE uid = $1::text;', [uid])
return result.rows
},
}
}
我的问题是,在压力下(很多请求)我收到以下错误:
错误:剩余的连接槽被保留用于非复制 超级用户连接
我不确定我是否正确使用了池。
【问题讨论】:
-
“很多请求”是多少?我们使用 pgpool、haproxy、PHP。 Apache 并且有很多客户端并且没有遇到任何问题。但是,我们已将所有内容调整为拥有大约 2000 个同时客户端。两台服务器,一台主机,一台从机和 8 个内核,配备 16GB 内存和 2TB 硬盘,使用 NFS。
-
20/s :-D 正在测试数据库,有 25 个连接插槽,1GB 内存...
标签: node.js postgresql connection-pooling