Questions tagged «pgbouncer»

3
使用HAProxy和PGBouncer的PostgreSQL高可用性/可伸缩性
我有一个Web应用程序的多个PostgreSQL服务器。通常,一个主机和多个从机处于热备用模式(异步流复制)。 我使用PGBouncer进行连接池:在连接到本地主机上的数据库的每台PG服务器(端口6432)上安装了一个实例。我使用事务池模式。 为了在从属服务器上平衡只读连接的负载,我将HAProxy(v1.5)与conf差不多使用: listen pgsql_pool 0.0.0.0:10001 mode tcp option pgsql-check user ha balance roundrobin server master 10.0.0.1:6432 check backup server slave1 10.0.0.2:6432 check server slave2 10.0.0.3:6432 check server slave3 10.0.0.4:6432 check 因此,我的Web应用程序连接到haproxy(端口10001),该端口在每个PG从站上配置的多个pgbouncer上进行负载平衡连接。 这是我当前架构的表示图: 这样可以很好地工作,但是我意识到有些实现方式大不相同:Web应用程序连接到单个PGBouncer实例,该实例连接到HAproxy,后者在多个PG服务器上实现负载平衡: 最好的方法是什么?第一个(我当前的一个)还是第二个?一种解决方案比另一种解决方案有什么优势? 谢谢

1
pgBouncer效果很好,但偶尔变得不可用
我正在繁忙的postgres 9数据库前面运行pgBouncer。在大多数情况下,它都可以正常工作。但是每隔几个小时,我就会收到来自应用程序的错误电子邮件,以及来自psycopg2的异常消息: OperationalError('无法连接到服务器:无法分配请求的地址服务器是否在主机“ neo-hulk”上运行并接受端口6432上的TCP / IP连接?”) 这是一个Python应用程序,其中有许多芹菜工作者正在运行任务。当这些错误到达时,我检查pgbouncer db,并且池大小在限制范围内。经过一些试验后,我将池的最大大小设置为400,池的大小设置为200。池模式是“会话”(请求大部分是自动提交的,几乎没有事务)。 是什么使pgBouncer像这样“消失”?它仅在短时间内(总的来说,与处理的大量请求相比,我们谈论的是很少的请求),但是那些失败的请求很重要。 谢谢!
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.