06 августа 2019

Ранее я писал о Кластер доменного режима Wildfly и балансировка нагрузки из коробки. Но что, если мы хотим выполнить балансировку зависящей от конкретного поведения сервера?

Подсистема Wildfly mod_cluster предоставляет нам несколько предопределенных типов показателей для определения наилучшей балансировки запросов:

Также вы можете настроить weight (влияние метрики на другие метрики) и свойства capacity ;
Ниже приведен пример того, как изменить значение по умолчанию на основе балансировки ЦП на балансировку на основе busyness + ЦП:

/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=cpu:remove()
/subsystem=modcluster/mod-cluster-config=configuration:add-metric(type=busyness,weight=2)
/subsystem=modcluster/mod-cluster-config=configuration:add-metric(type=cpu,weight=1)

Если этих предопределенных типов недостаточно, вы можете обеспечить custom-load-metric, реализовав org.jboss.modcluster.load.metric.impl.AbstractLoadMetric. Для возможности использования вашей пользовательской метрики,- вам необходимо скопировать упакованный JAR-файл в модуль modcluster и обновитьmodule.xml. Теперь вы можете использовать свою собственную метрику с вашей конфигурацией, как:

 <custom-load-metric class="org.kostenko.examples.wldfly.modcluster.MyBalancingMetric">