根据haproxy中的传入流量进行负载均衡

时间:2012-08-18 09:43:23

标签: high-availability haproxy

我正在使用haproxy和循环法,但现在我遇到了一个问题:我的一个后端服务器已加载。

  1. 我想知道我是否可以根据后端服务器上的负载平衡流量。如果一个失败,最大限制为。 conn流量转到其他后端服务器
  2. 最少conn,循环和& global max conn,default max conn和server max connection

1 个答案:

答案 0 :(得分:1)

如果服务器比其他服务器负载更多,那么机械地它将看到更多并发连接以获得相同的请求速率。这就是切换到minimalconn算法变得有用的地方,这将确保所有服务器始终以相同数量的并发连接运行。例如,如果您的某些请求比其他请求长得多(例如:数据库中的复杂请求),那么这很有用。

对于第二点,我会很简短,因为一切都在文档中,但是最小化关注于并发连接的数量,而循环则关注累积的连接数。使用循环法,每个服务器都会收到请求 反过来,因此在同一服务器上的请求是最佳间隔的。对于静态服务器或具有粘性的应用程序,这通常更好,用户在连接到服务器后会发出大量请求,因为这可确保您在同一服务器上拥有相同数量的用户。全局maxconn是单个haproxy进程将支持的并发连接总量。达到限制时,它将停止接受传入连接。默认的maxconn仅适用于前端,当达到前端的maxconn时,此前端仅停止接受新连接。服务器maxconn确保haproxy永远不会向服务器发送太多连接。达到限制时,尽可能选择其他服务器(无cookie等),或者请求排队,直到服务器释放连接以选择它。如果您的服务器过载,您应检查连接数并将服务器maxconn应用于略低于此值的位置以保护它们。