PgBouncer 连接池
6432 是 PgBouncer 的事实标准端口,也就是 PostgreSQL 的连接池。应用连接 6432,由连接池用少量真实连接去访问后端的 5432,高并发场景下能显著降低数据库的连接开销。它不是官方分配的端口,而是社区与发行版默认配置形成的惯例。
基本信息
| 服务 | PgBouncer(事实标准端口) |
|---|---|
| 协议 | TCP |
| 用途 | PostgreSQL 连接池、连接复用 |
| 后端端口 | 5432 |
| 安全等级 | 仅应用网段 |
典型使用场景
- 高并发应用通过连接池复用数据库连接
- 排查应用报连接被拒,确认连接池是否在运行
- 评估池模式与业务特性的兼容性
- 数据库扩容或切换时调整连接池配置
- 安全评估时确认连接池只对应用网段开放
通过连接池连接与查看
通过连接池连接与查看
psql -h 127.0.0.1 -p 6432 -U app appdb # 通过连接池连接
psql -h 127.0.0.1 -p 6432 -U admin pgbouncer -c "SHOW POOLS;"
ss -lntp | grep ':6432 ' # 确认监听连接路径与模式
| 项目 | 值 | 说明 |
|---|---|---|
| 应用接入 | 6432 | 连接池入口,应用配置指向它 |
| 数据库后端 | 5432 | 池子内部使用,不应直接对应用开放 |
| 池模式 | session 或 transaction | 事务池模式下部分特性受限 |
| 等待队列 | 控制台可查 | 队列持续增长说明连接配置偏紧 |
连接池的账号与口令通常写在各应用的配置文件里,暴露的 6432 等于把数据库入口直接开放。它应与数据库本身一样只对应用网段开放,并单独设置强口令而不是沿用默认值。
常见报错的区别:应用配置写着 6432 但机器上没起连接池,会报连接被拒;池模式设为事务模式后又使用预编译语句,会报预编译语句不存在的错误。两者现象完全不同,判断方向也不一样。
容量提示:连接池默认的池大小往往偏保守,高并发下会出现明显排队。调整前先确认数据库能承受的连接上限与内存,盲目放大池子反而会拖慢后端。
监控提示:控制台统计是判断瓶颈最直接的依据,等待队列长度与平均等待时间长期偏高,说明池子偏紧或后端响应变慢,要结合数据库侧指标一起看。