Node-Postgres 错误:尝试连接时超时

问题描述 投票:0回答:2

我们有一个生产部署的 Node js 应用程序,该应用程序全天提供大量流量。该应用程序处于环回状态,并通过其 postgres 连接器连接到 postgres db。连接器利用 Node-Postgres 作为其 pg 客户端。我们通常将最大池大小设置为 50,最小池大小设置为 5。应用程序平均运行三个实例。

我们面临的问题是,应用程序时不时地无法建立数据库连接,并出现错误 - 原因:错误:尝试连接时超时。我们尝试调试相同的问题,但发生这种情况时数据库上没有负载 - 没有 CPU 峰值,没有内存利用率峰值。仅供参考,我们使用 AWS Postgres RDS。

我们保留了以下配置作为连接参数的一部分

    connector: 'postgresql',
    host: host,
    user: user,
    password: password,
    database: database,
    min: 5,
    max: 50,
    idleTimeoutMillis: 60000,
    query_timeout: 5000,
    connectionTimeoutMillis: 10000 

有人可以告诉我们为什么这种情况会如此频繁地发生吗?目前,这种情况每周都会发生。只有在应用程序重新启动后我们才能解决它。这可能会释放池并终止空闲连接。但我们已经通过应用程序做到了。

node.js postgresql node-postgres
2个回答
0
投票

尝试将“maxUses”添加到连接设置


0
投票

您使用交易吗?如果是这样,那么您绝对应该在事务提交回滚后释放客户端。

更改配置 连接器:'postgresql', 主持人: 主持人, 用户: 用户, 密码: 密码, 数据库:数据库, 分钟:5, 最大:50, 空闲超时毫秒:60000, 查询超时:5000, 连接超时毫秒:10000 这里不会给出持久的结果,您必须对代码进行更改。

//写入表示交易开始的语句。

//提交/回滚您的交易的代码

© www.soinside.com 2019 - 2024. All rights reserved.