【发布时间】:2022-01-20 02:49:41
【问题描述】:
我正在研究从 NodeJs 到 Postgresql 的汇集连接。我将使用pg 库中的Pool 类以及async / await。
我读到 Postgresql 默认限制为 100 个并发连接,Pool 默认设置为 10 个池连接。
我的应用会在负载过重时扩展新实例,因此理论上我最终可以拥有超过 10 个实例,这将超过 100 个 Postgresql 最大连接数。
我想知道的是,在以下情况下执行await pool.Query(....)会发生什么。
- 所有 10 个池连接当前都在使用 - 是等待一个可用还是抛出异常?
- 到数据库服务器的所有 100 个连接都在使用中,NodeJS 尝试从池中创建新连接。
另外,我如何编写一些 NodeJS 代码来尝试建立 101 个池连接以证明这种行为?
【问题讨论】:
-
for (let i=0; i<11; i++) { const p = new Pool(); for (let j=0; j<11; j++) { p.query('SELECT true') } }?
标签: javascript node.js postgresql node-postgres