首页 > 解决方案 > 使用 postgressql 在 typeorm 中进行连接池

问题描述

我已经阅读了足够多的关于使用 typeorm 和 postgressql 设置连接池的文章和 typeorm 官方文档,但找不到解决方案。

到目前为止,我所看到的所有文章都解释了在 orm 配置或连接池中添加 max/Poolsize 属性,但这并不是在数据库中设置空闲连接池。

当我在应用程序引导后验证 pg_stat_activity 表时,我在数据库中看不到任何空闲连接,但是当向应用程序发送请求时,我可以看到与数据库的活动连接

在 orm 配置中的 extras 下定义的 max/poolSize 属性仅充当可以同时从应用程序打开到数据库的最大连接数。

我期望的是,在引导过程中,应用程序会打开与数据库的预定义数量的连接并将其保持在空闲状态。当请求进入应用程序时,空闲连接之一被拾取并提供服务。

谁能提供有关如何使用 typeorm 和 postgresql 定义此配置的见解?

标签: node.jspostgresqlnestjstypeorm

解决方案


据我所知, TypeORM 使用内置 pg-pool 的node-postgres并且没有那种选项。它支持最大值,并且当您的应用程序需要更多连接时,它会创建它们,所以如果您想预热它,或者可能对其进行负载/压力测试,并查看那些额外的连接,您需要编写一些代码关闭一堆异步查询/插入。

我想我理解你在寻找什么,因为我曾经做过企业 Java,并且glassfish和 jboss 等连接池有更多选择,你可以在池中保留未使用的热连接。不过 TypeORM/node-postgres 中没有这样的选项。


推荐阅读