pgBouncer:轻型PostgreSQL连接池

by pgbouncer社区
发布于 2020/02/29
浏览量 23,478
19,882

标签:连接池

pgBouncer是一个轻型的pg连接池,可以很好的管理pg的连接(对客户端连接进行限制,预防过多恶意连接;pgbouncer的每个连接仅消耗2KB的内存资源)。

 

PgBouncer的优点

1. 内存消耗低(默认为2k/连接),因为Bouncer不需要每次都接受完整的数据包

2. 可以把不同的数据库连接到一个机器上,而对客户端保持透明

3. 支持在线的重新配置而无须重启

4. pgbouncer 可以限制每一对用户+数据库 到PostgreSQL Cluster的总连接数

 

PgBouncer缺点

1. 仅支持V3协议,因此后端版本须>=7.4

2. 并没有真正实现数据库的负载均衡,如果单一的对一个数据库操作会使某个数据节点读写量增大

3. 当某个数据库down掉后,就不能通过pgbouncer连接起来,缺少了数据库备份的功能

4. 主要工作还是每一个数据节点对数据的存取,pgbouncer只是提供给客户端数据节点的分配和链接以及限制客户端连接的数量。

 

支持三种连接池模型

1. session

会话级连接,在它的连接生命周期内,连接池分配给它一个数据库连接。客户端断开时,数据库连接会放回连接池中。 

2. transaction

事务级别连接,当客户端的每个事务结束时,数据库连接就会重新释放回连接池中,再次执行一个事务时,需要再从连接池中获取一个连接。 

3. statement

每执行完一个SQL时,连接就会重新释放回连接池中,再次执行一个SQL 时,需要再次从连接池中获得连接。这种模式意味着在客户端强制autocomit模式

 

社区网址:https://pgbouncer.github.io

最新版本:http://www.pgbouncer.org/2020/06/pgbouncer-1-14-0

使用帮助:http://www.pgbouncer.org/install.html