Pgbouncer - 我可以使用pgbouncer在postgres集群中对请求进行负载均衡吗?

时间:2017-09-13 05:26:52

标签: postgresql cluster-computing pgbouncer

目前,我在postgresql集群中使用pgbouncer进行连接池。我只是想确定,是否可以使用pgbouncer在postgresql集群中的节点之间加载平衡请求。

2 个答案:

答案 0 :(得分:1)

来自PgBouncer FAQ

  

如何在多个服务器之间进行负载均衡查询?

     

PgBouncer没有内部多主机配置。可以通过一些外部工具来实现:

     
      
  1. DNS循环法。在一个DNS名称后面使用多个IP。每次启动新连接时,PgBouncer都不会查找DNS。相反,它会缓存所有IP并在内部进行循环。注意:如果一个名称后面有超过8个IP,则DNS后端必须支持EDNS0协议。有关详细信息,请参阅自述文件。

  2.   
  3. 使用TCP连接负载均衡器。无论是LVS还是HAProxy似乎都是不错的选择。在PgBouncer方面,最好让server_lifetime更小并打开server_round_robin - 默认情况下,LIFO算法会重用空闲连接,当需要进行负载平衡时,这种连接可能效果不佳

  4.   

答案 1 :(得分:0)

现在有 pgbouncer-rr-patch(AWS 的 pgbouncer fork)可以进行负载平衡:

<块引用>

路由:从一个客户端连接智能地向不同的数据库服务器发送查询;使用它在多个服务器/集群之间进行分区或负载平衡。