Patroni Haproxy 和 pg-bouncer 架构

Patroni Haproxy 和 pg-bouncer 架构

我正在构建一个 patroni postgres 集群,但是我无法决定哪种架构更好

应用程序 > HAproxy > Pgbouncer > PostgreSQL (patroni)

应用程序 > PGBouncer > HAproxy > PostgreSQL (patroni)

我搜索后似乎找不到答案,而且有很多相互矛盾的答案。有人说最好将 haproxy 放在前面,而其他人则持相反意见。

我很感激你对此事的意见

答案1

第一个选项是您想要的,因为 pgBouncer 是 PostgreSQL 的连接池。它需要靠近 DBMS,并且一对一地将每个 DBMS 连接到其自己的 Postgresql 实例。至于 HAProxy,它是一个负载平衡器,您可以拥有与 Postgre\Patroni\pgBouncer 实例数量不同的 HAProxies 数量。此外,它还为您提供了一个选项,可以将读取和写入请求分离到不同的端口\数据库。

这是一篇有用的文章https://medium.com/@nicola.vitaly/setting-up-high-availability-postgresql-cluster-using-patroni-pgbouncer-docker-consul-and-95c70445b1b1

相关内容