2017-09-20 8 views
1

J'essaie d'utiliser ModCluster pour équilibrer la charge de certains serveurs. Nous avons un seul EAR qui doit être équilibré par différents DNS.Comment configurer les mêmes applications de contexte pour utiliser différentes machines avec ModCluster et Wildfly10

Nous avons ce scénario. Nous devons maintenir le même contexte 'system1' en raison de la compatibilité ascendante

  • 4 serveurs pour urla.com.br/system1/
  • 2 serveurs pour urlb.com.br/system1/

En utilisant le mode Wildfly 10.1.0, ils sont séparés par deux groupes de serveurs: URLA et URLB. Ils partagent le même profil (URL-HA) et les liaisons de socket (URL-HA-SOCKET).

J'ai un Apache avec mod_cluster avec une configuration minimale.

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> 

Quand j'accéder http://10.90.0.13:7777/mod_cluster-manager, je vois les 6 serveurs enregistrés avec le contexte system1/. Ils utilisent le même fichier EAR, d'ailleurs.

Mais ce n'est pas le scénario idéal pour nous. Les utilisateurs accédant à urla.com.br/system1/ ne peuvent pas utiliser les machines de urlb.com.br/system1/ et vice versa.

La seule façon que je peux trouver le faire (je n'a pas été testé encore ...) est de créer un profil pour chaque groupe de serveurs, donc je peux configurer un autre groupe d'équilibrage de charge dans:

Profil > URLA-HA/URLB-HA> Sous-systèmes> ModCluster.

Mais dans ce cas, nous dupliqués toutes les configurations qui existe dans le profil (DataSources, Queues, MailSession, etc.). C'est douloureux à maintenir.

Alors, quelles options avons-nous dans mon cas? Merci!

Répondre

1

J'ai trouvé la solution à mon problème en utilisant un seul profil Wildfly. Pour cela, j'ai utilisé deux équilibreurs et utilisé ProxyPass pour utiliser l'équilibreur spécifique.


wildfly: À l'URL de la console de contrôleur de domaine admin, allez à:

Configuration: Profils Profil: Sous-système URL-HA: ModCluster

Dans l'onglet Publicité, changez la valeur de l'équilibreur:

${projectcluster.modcluster.balancer:mybalancer} 

Ajouter Propriétés système à la fois le serveur groupes

Runtime -> Groupes de serveurs -> URLA -> Voir

Dans l'onglet Propriétés du système, ajoutez:

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

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

Runtime -> Groupes de serveurs -> URLB -> Voir

Dans l'onglet Propriétés système, ajouter:

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

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

Après cela, redémarrez votre serveur groupes URLA et URLB


Apache En utilisant l'exemple Apache sur la conf question:

... 
... 

    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> 

Toute la demande 10.90.0.13 : 8001/system1 sera envoyé à premier équilibreur et sur le 10.90.0.13:8002/system1 sera envoyé à deuxième équilibreur

Et c'est tout.