Load-Balancing

如何在 HAProxy 中使用“設置權重”

  • August 24, 2018

嗨,我在 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 之間。

如果我使用百分比值為 70% 的 web1 設置權重,這是否意味著通過為 web1 分配的 50(最初在伺服器中配置)流量中的 70%,如果是這樣,其餘的 30% 在它的 50 值中會通過嗎?

  1. 另一個查詢是,如果我們使用 set weight 命令作為
set weight web1 10.10.10.10 3
set weight web2 10.10.10.11 1

這是否意味著 75% 的流量到 web1 和 25% 的流量到 web2?如何以比例方式拆分流量並在設定的權重中使用。

如果可能,請讓我知道如何使用絕對權重來分割流量。感謝你的回答。

問題一:

文件指出:

如果該值以“%”符號結尾,則新重量將相對於最初配置的重量。

所以它確實意味著 70%“在為 web1 分配的 50 中”。其他 30% 的去向在文件中並不清楚,但它必須是 web2,因為它不能被丟棄。

問題2:

HAProxy 文件指出:

“權重”參數用於調整伺服器相對於其他伺服器的權重。所有伺服器將收到與其權重 相對於所有權重之和成比例的負載,因此權重越高,負載越高。預設權重為1,最大值為256

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

額外問題:

如何以比例方式拆分流量並在設定的權重中使用。

如果可能,請讓我知道如何使用絕對權重來分割流量。

我不明白這兩個問題。你能詳細說明一下嗎?

引用自:https://serverfault.com/questions/927554