PGPool II + Django w/ psycopg2 负载平衡

Posted

技术标签:

【中文标题】PGPool II + Django w/ psycopg2 负载平衡【英文标题】:PGPool II + Django w/ psycopg2 load balancing 【发布时间】:2018-11-10 02:16:03 【问题描述】:

我有一个应用程序池,在具有两个后端 PostgreSQL 服务器的 PGPool II 之上运行 django 1.6 和 psycopg2。但是所有查询(读取和/或写入)都将 ma​​ster PostgreSQL 甚至 SELECT

正如我们在PGPool II documentation 上看到的那样,如果我们已将查询读入事务,我们需要满足一些条件来负载平衡操作系统发送到主服务器。我知道我们有一些代码点,我们将 SELECT 放入事务中,但我们也有简单的 SELECT 查询,这些查询也将掌握。

我不确定将所有查询发送给 master 是否以及满足什么条件。

这里有负载均衡条件的表格:

【问题讨论】:

【参考方案1】:

将所有查询发送给 master 真的很奇怪。如果您将“stream”用作“master_slave_sub_mode”,我不知道您使用的是哪个版本以及天气。假设您使用的是 4.0.0 版本并且 master_slave_sub_mode 是“流”

load_balance_mode = on
master_slave_sub_mode = 'stream'
replication_mode = off
replicate_select = off
white_function_list = ''
black_function_list = ''
black_query_pattern_list = ''
database_redirect_preference_list = ''
app_name_redirect_preference_list = ''
allow_sql_comments = off
disable_load_balance_on_write = 'transaction'

你能检查一下这个设置吗? 仅供参考,3.7.x 在负载平衡方面存在一些问题。如果您使用的是 3.7.x,我建议您升级版本。

【讨论】:

以上是关于PGPool II + Django w/ psycopg2 负载平衡的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL+pgpool-II复制方案

pgpool-ii4.1.2 高可用集群[主备切换]配置部分

pgpool-ii实现postgresql读写分离

pgpool-II使用问题之SCRAM方法错误

Pgpool-II:当断开主节点或备用节点失败时,委托 IP 不可用

PGPool-II+PG流复制实现HA主备切换