目前,我在postgresql集群中使用pgbouncer进行连接池。我只是想确定,是否可以使用pgbouncer在postgresql集群中的节点之间加载平衡请求。
答案 0 :(得分:1)
如何在多个服务器之间进行负载均衡查询?
PgBouncer没有内部多主机配置。可以通过一些外部工具来实现:
DNS循环法。在一个DNS名称后面使用多个IP。每次启动新连接时,PgBouncer都不会查找DNS。相反,它会缓存所有IP并在内部进行循环。注意:如果一个名称后面有超过8个IP,则DNS后端必须支持EDNS0协议。有关详细信息,请参阅自述文件。
- 醇>
使用TCP连接负载均衡器。无论是LVS还是HAProxy似乎都是不错的选择。在PgBouncer方面,最好让server_lifetime更小并打开server_round_robin - 默认情况下,LIFO算法会重用空闲连接,当需要进行负载平衡时,这种连接可能效果不佳
答案 1 :(得分:0)
现在有 pgbouncer-rr-patch(AWS 的 pgbouncer fork)可以进行负载平衡:
<块引用>路由:从一个客户端连接智能地向不同的数据库服务器发送查询;使用它在多个服务器/集群之间进行分区或负载平衡。