
PGBOUNCER 有些问题是需要更深入的理解的,尤其针对于postgresql 来说为什么要推荐使用 连接池,而MYSQL 为什么没有听说过墙裂推荐使用连接池,以及具体怎么操作pgbouncer 都是这次要说的话题。
在使用PostgreSQL 时连接时通过postmaster 来接受外部对postgresql的连接。而这样的方式会造成每个连接都会初始分配不小的内存,而这样的做法遇到大量的高频率的连接,会占用大量的内存,导致系统性能的问题,通用的解决方法当然可以通过程序中所设置的缓冲池来解决,但这样的结构,一般是由开发来控制和设置的,对于运维和DBA来说属于黑盒,和不可控的状态。所以我们才会使用数据库连接池,来进行连接复用节省打开多余连接的系统资源的消耗。

我们从上面的图中来看pgbouncer 大致的工作原理
1 客户连接到Pgbouncer 这里需要去验证你连接的数据库的地址,用户名,密码等信息是否是对的,如果不对直接就会从PgBouncer 中踢出这个连接,首先在安全性上,就可以将一部分攻击性的连接屏蔽到外面而与数据库隔绝。
2 在通过PgBouncer 第一层后,下面就需要对连接池和数据库之间已经存在的连接进行一个检测,首先要确认的问题是,数据库连接还有富余的吗?如果没有,会尝试开新的连接,但大部分稳定的时期中,是可以找到空余的连接。
3 在客户端到Pgbouncer 在到数据库之间的连接打通后,pgbouncer 会根据下面的几种连接的方式来判断这个已经存活的连接在何时被收回到pgboun

本文深入探讨PGbouncer在PostgreSQL中的作用,解释为何推荐使用连接池及如何操作PGbouncer。详细介绍了PGbouncer的工作原理,包括连接验证、连接池检测、连接回收策略等,并提供配置示例。
最低0.47元/天 解锁文章
24

被折叠的 条评论
为什么被折叠?



