You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sequelize连接Postgres报too many clients already,用pg bouncer仍未解决

报错根因

错误码53300对应的是PostgreSQL服务端连接数达到max_connections配置上限,拒绝新连接请求。使用pgBouncer后仍报错,一般是连接路径、连接池配置、pgBouncer规则三类问题,可按以下步骤逐一排查修复:

修复步骤
  • 校验连接路径:确认Sequelize配置的数据库端口是pgBouncer的监听端口(默认6432),而非PostgreSQL原生端口(默认5432),端口配置错误会导致pgBouncer完全未生效。
  • 对齐连接池配置:
    • Sequelize单实例的连接池max参数不要超过10,多实例部署时所有实例的max总和不能超过pgBouncer的max_client_conn配置值
    • pgBouncer的default_pool_size总和不能超过PostgreSQL的max_connections配置值(默认100,需预留至少10个连接给管理员运维使用)
  • 匹配pgBouncer池模式:如果pgBouncer配置为事务模式(transaction),需确保Sequelize未使用会话级特性(Prepared Statement、游标、LISTEN/NOTIFY等),这类特性会导致pgBouncer无法复用连接,很快占满配额。用到这类特性时要么将pgBouncer切换为会话模式(session),要么在Sequelize配置中添加prepare: false禁用Prepared Statement。
  • 检查Sequelize实例初始化逻辑:不要在请求逻辑中重复实例化Sequelize,每次实例化都会新建独立连接池,极快耗尽连接配额,需全局初始化单例Sequelize实例复用。
  • 临时应急方案:调整PostgreSQL的postgresql.conf中max_connections参数,重启服务生效,该方案仅用于临时恢复业务,长期仍需通过连接池复用控制总连接数。

内容的提问来源于stack exchange,提问作者Avinash Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:06:02