
Привет, я настроил сервер HAProxy в haproxy.cfg для балансировки потока трафика между двумя серверами, скажем
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%, означает ли это, что 70% из этих выделенных 50 для web1 (которые изначально настроены на сервере) трафика пропускаются, если так, то оставшиеся 30% из этих 50 значений будут пропущены?
2) Другой вопрос, если мы используем команду set weight как
set weight web1 10.10.10.10 3
set weight web2 10.10.10.11 1
Означает ли это, что 75% трафика на web1 и 25% трафика на web2? Как разделить трафик пропорционально и использовать его в заданном весе.
Если возможно, пожалуйста, дайте мне знать, как использовать абсолютный вес для разделения трафика. Спасибо за ответ.
решение1
Вопрос 1:
Theдокументациясостояния:
Если значение заканчивается знаком «%», то новый вес будет относительно изначально настроенного веса.
Так что это действительно означает 70% "из выделенных 50 для web1". Куда пойдут остальные 30%, из документации не ясно, но это должен быть web2, поскольку его нельзя удалить.
Вопрос 2:
TheДокументация HAProxyсостояния:
Параметр "вес" используется для регулировки веса сервера относительно других серверов. Все серверы будут получать нагрузку, пропорциональную их весу относительно суммы всех весов, поэтому чем больше вес, тем больше нагрузка. Вес по умолчанию равен 1, а максимальное значение равно 256
Итак, да, это означает, что web1 получит 75% = 3/(1+3) трафика, а web2 получит 25% трафика.
Дополнительные вопросы:
Как пропорционально разделить трафик и использовать его в заданном весе.
Если возможно, пожалуйста, дайте мне знать, как использовать абсолютный вес для разделения трафика.
Я не понимаю эти два вопроса. Можете немного пояснить?