PostgreSQL 连接池 pgbouncer

BSD
C/C++
Windows
2010-12-16
ValueError

pgbouncer 是 PostgreSQL 的轻量的连接池,支持三种模式。

Session pooling/会话连接池

最礼貌的方法。在客户端连接的时候,在它的连接生命期内,会给它赋予一个服务器连接。在客户端断开的时候,服务器连接会放回到连接池中。

Transaction pooling/事务连接池

服务器连接只有在一个事务里的时候才赋予客户端。在 PgBouncer 注意到事务结束的时候,服务器将会放回连接池中。这是一个 hack,因为它打破了应用对后段连接的看法。只有在应用配合这样的使用模式,没有使用会破坏这种使用模式的时候才能用这个连接方式。参阅下标获取会破坏 这种模式的特性。

Statement pooling/语句连接池

最激进的模式。这是事务连接池的一个扭曲的变种 - 不允许多语句的事务。这就意味着是在客户端强制“autocomit”模式,主要是给 PL/Proxy 用的。

  • 内存需求低(缺省的时候每个连接 2k)。这事因为 PgBouncer 不需要一次就看到完整的包。

  • 它不是和单个后端服务器绑定的,目标数据库可以位于不同的主机上。

  • 对大多数设置,都支持在线的重新配置,无需重启。

  • 支持在线的重启/升级,而不会退出客户端的连接。

  • 只支持协议 V3 版本,因此后段版本必须 >= 7.4。

特性    会话连接池  事务连接池  
启动参数支持 [0]支持 [0]
SET/RESET支持从不支持
LISTEN/NOTIFY支持从不支持
WITHOUT HOLD CURSOR支持支持
WITH HOLD CURSOR支持 [1]从不支持
协议级别的准备好的规划支持 [1]不支持 [2]
PREPARE / DEALLOCATE支持 [1]从不支持
ON COMMIT DROP 临时表支持支持
PRESERVE/DELETE ROWS 临时表支持 [1]从不支持
重置缓存的规划支持 [1]支持 [1]
LOAD 语句支持从不支持
  • [0] - 启动参数是: client_encoding,datestyle,timezone 和 standard_conforming_strings。PgBouncer 会判断这些参数的变化并且它能保证对客户端来说是一致的。从 PgBouncer 1.1 开始可用。

  • [1] - 完全透明要求 PostgreSQL 8.3 和 PgBouncer 1.1,并且还要设置 server_reset_query = DISCARD ALL

  • [2] - 我们可以在 PgBouncer 里添加那部分支持。

加载中

评论(1)

ValueError
ValueError
PostgreSQL 而不用连接池,绝对是坑爹的做法…… 哪怕是像 pgbouncer 这样的“轻量级”连接池,有和没有的区别都不是一般的大。

PgBouncer 1.10.0 发布,PostgreSQL 数据库连接池

PgBouncer 1.10.0 已发布,pgbouncer 是 PostgreSQL 的轻量级连接池,支持会话连接池、事务连接池和语句连接池三种模式。 新版本最主要的变化是改进了对 TLS 1.3 的支持,更新内容如下: 特性...

07/04 07:16

PostgreSQL 数据库连接池 PgBouncer 1.9.0 发布

PgBouncer 1.9.0 已发布,更新内容如下: Features RECONNECT command WAIT_CLOSE command Fast close - Disconnect a server in session pool mode immediately if it is in “close_neede...

2018/08/14 07:33

没有更多内容

加载失败,请刷新页面

没有更多内容

8
回答
Instagram 架构分析笔记

by Fenng@dbanotes.net Instagram 团队上个月才迎来第 7 名员工,是的,7个人的团队。用户数量超过 1400 万,图片数量:...

2011/12/07 16:41
2
回答
pgbouncer javaweb jndi 连接发生异常prepared statement "S_1" does not exist

如题: 环境: postgresql 9.1 pgbouncer 1.5 postgresql 的java 驱动为 postgresql9.2-1002....

2013/06/14 16:17
3
回答
这个pgbouncer写错了哈

这个pgbouncer写错了哈 软件貌似是C/C++开发的不是Java 另外也不是跨平台的,理论上只能Linux,Win下要借助Mingw,性能还不如OD...

2010/12/16 14:59

没有更多内容

加载失败,请刷新页面

没有更多内容

postgresql-xl使用pgbouncer连接池

本文主要介绍pgbouncer的安装、配置以及使用过程。

2016/01/25 21:24
123
1
PostgreSQL连接池pgbouncer的使用

今天在虚拟机上整理了下pgbouncer的安装使用过程,记录如下。 说明:pgbouncer是一款轻量级针对postgresql的数据库连接工具,可以对客户端的连接做限制,防止恶意连接,另外也可以减少数据库...

2012/08/21 17:16
8.6K
3
PostgreSQL连接池pgbouncer程序连接报错解决一例

昨晚对一个应用做了模拟压测,用最新版pgbouncer时发现了一些问题。 底层环境: OS:CentOS 6 DB:Postgres 9.1.2 Pool:pgbouncer 1.5.4 pgbouncer的配置脚本: [root@kenyon config]# more p...

2012/12/13 11:37
1K
0
OSX下安装PgBouncer

首先得安装 brew,这个网上资料一大推,不细说。 brew install PgBouncer The config file: /usr/local/etc/pgbouncer.ini is in the "ini" format and you will need to edit it for your pa...

2017/10/23 08:31
17
0
postgresql数据库连接池pgbouncer

前端时间看了看服务器还有多余的内存,由于数据库和程序都在一个服务器上,就想看看有什么提升并发的方法。试用了下pgbouncer ,记录下。 1.源码安装: wget https://github.com/downloads/...

2013/06/13 01:28
4.6K
2
Pgbouncer unix socket is in use, cannot continue

同事搭了一个postgresql + pgbouncer的环境,但是不小心删了一些文件,重装了pgbouncer后再启动就起不来了,反复试了几次也不行,一直报错: unix socket is in use, cannot continue 2013-...

2013/06/05 18:40
649
0
java tomcat jni连接 pgbouncer 异常: prepared statem...

java tomcat jndi连接 pgbouncer 发生异常: prepared statement "S_1" does not exist 。 环境: postgresql 9.1 pgbouncer 1.5 postgresql 的java 驱动为 postgresql9.2-1002.jdb4.jar 原因...

2013/06/14 15:25
136
0
pgHA

说说openscg上的一个PostgreSQL的ha工具---pgHA

2014/05/16 11:16
283
0
由 git 编译 PgBouncer

由 git 复制源代码编译 PgBouncer 的过程

2015/11/23 11:39
95
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部