pgbouncer 是 PostgreSQL 的轻量的连接池,支持三种模式。
Session pooling/会话连接池
最礼貌的方法。在客户端连接的时候,在它的连接生命期内,会给它赋予一个服务器连接。在客户端断开的时候,服务器连接会放回到连接池中。
Transaction pooling/事务连接池
服务器连接只有在一个事务里的时候才赋予客户端。在 PgBouncer 注意到事务结束的时候,服务器将会放回连接池中。这是一个 hack,因为它打破了应用对后段连接的看法。只有在应用配合这样的使用模式,没有使用会破坏这种使用模式的时候才能用这个连接方式。参阅下标获取会破坏这种模式的特性。
Statement pooling/语句连接池
最激进的模式。这是事务连接池的一个扭曲的变种 - 不允许多语句的事务。这就意味着是在客户端强制“autocomit”模式,主要是给 PL/Proxy 用的。
内存需求低(缺省的时候每个连接 2k)。这事因为 PgBouncer 不需要一次就看到完整的包。
它不是和单个后端服务器绑定的,目标数据库可以位于不同的主机上。
对大多数设置,都支持在线的重新配置,无需重启。
支持在线的重启/升级,而不会退出客户端的连接。
只支持协议 V3 版本,因此后段版本必须 >= 7.4。
主页:http://pgfoundry.org/projects/pgbouncer/
下载:http://pgfoundry.org/frs/?group_id=1000258&release_id=1698
来自:开源中国社区

