我正在构建一个 patroni postgres 集群,但是我无法决定哪种架构更好
应用程序 > HAproxy > Pgbouncer > PostgreSQL (patroni)
应用程序 > PGBouncer > HAproxy > PostgreSQL (patroni)
我搜索后似乎找不到答案,而且有很多相互矛盾的答案。有人说最好将 haproxy 放在前面,而其他人则持相反意见。
我很感激你对此事的意见
答案1
第一个选项是您想要的,因为 pgBouncer 是 PostgreSQL 的连接池。它需要靠近 DBMS,并且一对一地将每个 DBMS 连接到其自己的 Postgresql 实例。至于 HAProxy,它是一个负载平衡器,您可以拥有与 Postgre\Patroni\pgBouncer 实例数量不同的 HAProxies 数量。此外,它还为您提供了一个选项,可以将读取和写入请求分离到不同的端口\数据库。