И это все.

аюсь использовать ModCluster для балансировки нагрузки некоторых серверов. У нас есть один EAR, который должен быть сбалансирован по нагрузке различными DNS.

У нас есть этот сценарий. Мы должныподдерживать тот же контекст 'system1' из-за обратной совместимости

4 сервера для urla.com.br/system1/2 сервера для urlb.com.br/system1/

Используя Wildfly 10.1.0 в доменном режиме, они разделены двумя группами серверов:Урла а такжеURLB, Они имеют один и тот же профиль (URL-HA) и привязки сокетов (URL-HA-SOCKET).

У меня есть Apache с mod_cluster с минимальной конфигурацией.

LoadModule cluster_slotmem_module modules/mod_cluster_slotmem.so
LoadModule manager_module modules/mod_manager.so
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
LoadModule advertise_module modules/mod_advertise.so


Listen 10.90.0.13:7777

<VirtualHost 10.90.0.13:7777>

  <Directory />
      Require all granted
  </Directory>

  <Location />
    Order deny,allow
    Allow from all
  </Location>

  ManagerBalancerName mybalancer
  ServerAdvertise on
  EnableMCPMReceive On

  <Location /mod_cluster-manager>
    SetHandler mod_cluster-manager
    Order deny,allow
    Allow from all
  </Location>
</VirtualHost>

Когда я получаю доступhttp://10.90.0.13:7777/mod_cluster-managerЯ вижу 6 серверов, зарегистрированных в контекстеsystem1/, Кстати, они используют один и тот же EAR-файл.

Но это не идеальный сценарий для нас. Пользователи, обращающиеся к urla.com.br/system1/, не могут использовать машины urlb.com.br/system1/ и наоборот.

Единственный способ найти это (я еще не тестировал ...) - создать один профиль для каждой группы серверов, чтобы я мог настроить другую группу распределения нагрузки в:

Профиль> URLA-HA / URLB-HA> Подсистемы> ModCluster.

Но в этом случае мы продублировали все конфигурации, которые существуют в профиле (DataSources, Queues, MailSession и т. Д.). Это больно поддерживать.

Итак, какие у нас есть варианты в моем случае? Спасибо!

Ответы на вопрос(1)

Решение Вопроса

используя только один профиль Wildfly.

Для этого я использовал два балансировщика и использовал ProxyPass для использования конкретного балансировщика.

Wildfly: На URL администратора консоли контроллера домена перейдите по адресу:

Конфигурация: Профили Профиль: URL-HA Подсистема: ModCluster

На вкладке Реклама измените значение Балансировщика:

${projectcluster.modcluster.balancer:mybalancer}

Добавьте системные свойства к обеим группам серверов

Время выполнения -> Группы серверов -> URLA -> Просмотр

На вкладке «Свойства системы» добавьте:

Key 'projectcluster.modcluster.balancer' value 'first'

Key 'jboss.modcluster.multicast.address' value '224.0.2.108'

Время выполнения -> Группы серверов -> URLB -> Просмотр

На вкладке «Свойства системы» добавьте:

Key 'projectcluster.modcluster.balancer' value 'second'

Key 'jboss.modcluster.multicast.address' value '224.0.2.108'

После этого перезапустите серверные группы URLA и URLB

апаш Используя пример Apache conf по вопросу:

...  
...

  ManagerBalancerName mybalancer
  ServerAdvertise on
  EnableMCPMReceive On
  # Defined on Wildfly
  AdvertiseGroup 224.0.2.108:23364

  <Location /mod_cluster-manager>
    SetHandler mod_cluster-manager
    Order deny,allow
    Allow from all
  </Location>
</VirtualHost>

Listen 10.90.0.13:8001

<VirtualHost 10.90.0.13:8001>
  ProxyPass        / balancer://first stickysession=JSESSIONID|jsessionid nofailover=On
  ProxyPassReverse / balancer://first
</VirtualHost>

Listen 10.90.0.13:8002

<VirtualHost 10.90.0.13:8002>
  ProxyPass        / balancer://second stickysession=JSESSIONID|jsessionid nofailover=On
  ProxyPassReverse / balancer://second
</VirtualHost>

Все запросы на 10.90.0.13:8001/system1 будут отправлены напервый балансировщик и на 10.90.0.13:8002/system1 будет отправленвторой балансер

И это все.

Ваш ответ на вопрос