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。但是所有查询(读取和/或写入)都将 master 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 负载平衡的主要内容,如果未能解决你的问题,请参考以下文章
pgpool-ii4.1.2 高可用集群[主备切换]配置部分