嗨,我在 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% 的流量。
附加问题:
如何按比例分割流量并按照设定的权重使用。
如果可能的话,请告诉我如何使用绝对权重来分割流量。
这两个问题我不太明白,能详细说一下吗?