Pgbouncer 与 pgpool II 对比

大家好,

我想知道你们中是否有人在使用 Discourse 时,有过使用 pgpool II 代替 pgbouncer 的经验?如果有,目前的感受如何?

团队是否考虑过在某个时间点采用它?如果是,原因是什么?

谢谢,
Ismael

1 个赞

pgpool II 不支持事务池。在缺乏事务池的情况下,它在大规模托管场景中的价值极其有限,反而只会增加系统的复杂性。

在标准的“自托管”Discourse 部署中,你很难遇到超过 30-60 个活跃连接的情况,而 PostgreSQL 完全能够轻松应对这一负载。因此,无需引入连接池器来为你的架构增加不必要的复杂性。

5 个赞

非常感谢,Sam。确实,正如你所说,对于连接数不多的情况,这可能没有太大意义。此外,考虑到事务池化,这种情况下只有一个赢家。

不过,据我所知,pgbouncer 不支持高可用(HA),而 pgpool II 支持。如果在 pgpool 前面部署一个 pgbouncer 以实现高可用功能,是否可行?对于 Discourse 来说,什么样的 HA 方案最为推荐?

Discourse 通过全局配置开箱即用地支持高可用性 (HA)。

参见:GitHub - discourse/rails_failover · GitHub

并在此处查阅全局设置:discourse/config/discourse_defaults.conf at main · discourse/discourse · GitHub

您可以配置两个 pgbouncer,以实现高可用性模式或满足海量连接需求。

2 个赞