加载中...
PgBouncer 是 PostgreSQL 的一款轻量级连接池中间件,位于应用与数据库之间,复用少量数据库连接来服务大量客户端请求,从而降低连接开销、提升并发能力,是高并发 PostgreSQL 部署的常见组件。

| 类型 | 连接池中间件 |
| 面向数据库 | PostgreSQL |
| 池化模式 | 会话/事务/语句 |
| 特点 | 轻量、单进程 |
| 许可 | 开源 |
PgBouncer 是一款轻量级的 PostgreSQL 连接池中间件。PostgreSQL 为每个数据库连接分配一个独立的服务进程,连接数过多会消耗大量内存并加重调度负担;PgBouncer 通过在应用与数据库之间维护一个连接池,复用有限的后端连接来服务成百上千个客户端,显著缓解这一问题。
PgBouncer 以进程形式部署,对应用而言它看起来就是一个 PostgreSQL 服务器,应用连接到它而非直连数据库。它在后端只维持相对少量的真实连接,并按策略把客户端请求映射到这些连接上。由于体积小、资源占用低,它常与数据库部署在同一台机器或紧邻其前置。
PgBouncer 常用于高并发 Web 应用、短连接频繁的无服务器(Serverless)环境,以及大量应用实例同时访问同一 PostgreSQL 的情况。它可以把上层成千上万的连接收敛为后端几十到几百个稳定连接,保护数据库不被连接风暴压垮。
问:事务级池化有什么限制?答:事务级模式下,连接在事务结束后即归还,因此依赖会话状态的功能(如预备语句、会话变量、临时表等)可能受影响,使用时需注意兼容性。
问:PgBouncer 和应用内连接池有冲突吗?答:两者可以配合。应用内连接池管理应用到 PgBouncer 的连接,PgBouncer 再复用到数据库的连接,共同减少后端压力。

| 类型 | 连接池中间件 |
| 面向数据库 | PostgreSQL |
| 池化模式 | 会话/事务/语句 |
| 特点 | 轻量、单进程 |
| 许可 | 开源 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧