如何在 HAProxy 中使用“设置权重”

如何在 HAProxy 中使用“设置权重”

嗨,我在 haproxy.cfg 中配置了一个 HAProxy 服务器来平衡两台服务器之间的流量,比如

server web1 10.10.10.10 weight 50
server web2 10.10.10.11 weight 50

为了测试目的,我们需要动态设置权重,因此我们使用 set weight <backend>/<server> <weight>[%] 本文中提到的命令http://cbonte.github.io/haproxy-dconv/configuration-1.4.html#hash-type

1)他们在文件中提到

相对权重仅允许在 0 到 100% 之间,绝对权重允许在 0 到 256 之间。

如果我为 web1 设置权重并将百分比值为 70%,是否意味着为 web1 分配的 50%(最初在服务器中配置)中的 70% 的流量会被传递,如果是这样的话,那 50% 中剩下的 30% 会被传递到哪里?

2)另一个问题是,如果我们使用设置权重命令作为

set weight web1 10.10.10.10 3
set weight web2 10.10.10.11 1

是不是意味着75%的流量流向web1,25%的流量流向web2呢?如何按比例分割流量,并按设定的权重使用。

如果可能的话,请告诉我如何使用绝对权重来分割流量。谢谢您的回答。

答案1

问题 1:

文档状态:

如果值以“%”符号结尾,则新权重将相对于最初配置的权重。

因此,这确实意味着“分配给 web1 的 50% 中有 70%”。文档中没有明确说明剩余的 30% 应该放在哪里,但它必须是 web2,因为它不能被丢弃。

问题2:

HAProxy 文档状态:

“权重”参数用于调整服务器相对于其他服务器的权重。所有服务器都将获得与其权重成比例的负载 相对于所有权重的总和,因此权重越大,负载越大。默认权重为 1,最大值为 256

所以,是的,这意味着 web1 将接收 75% = 3/(1+3) 的流量,而 web2 将接收 25% 的流量。

附加问题:

如何按比例分割流量并按照设定的权重使用。

如果可能的话,请告诉我如何使用绝对权重来分割流量。

这两个问题我不太明白,能详细说一下吗?

相关内容