
您好,我已經在 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 指令作為
set weight web1 10.10.10.10 3
set weight web2 10.10.10.11 1
這是否意味著 75% 的流量流向 web1,25% 的流量流向 web2?如何按比例分割流量並依設定權重使用。
如果可能,請讓我知道如何使用絕對權重來分割流量。感謝你的回答。
答案1
問題一:
這文件狀態:
如果該值以“%”符號結尾,則新權重將相對於初始配置的權重。
所以它確實意味著 70%「在為 web1 分配的 50 個中」。另外 30% 會去哪裡,文件中並不清楚,但它必須是 web2,因為它不能被刪除。
問題2:
這HAProxy 文檔狀態:
「權重」參數用於調整伺服器相對於其他伺服器的權重。所有伺服器都會收到與其權重成比例的負載 相對於所有權重的總和,所以重量越大,負載越高。預設權重為1,最大值為256
所以,是的,這意味著 web1 將接收 75% = 3/(1+3) 的流量,web2 將接收 25% 的流量。
額外問題:
如何按比例分割流量並依設定權重使用。
如果可能,請讓我知道如何使用絕對權重來分割流量。
我不明白這兩個問題。能詳細說明一下嗎?