16.5.2. Configurer le sous-système mod_cluster

Dans la Console de gestion sur le web, les options de mod_cluster sont disponibles dans la zone de configuration du sous-système Web. Cliquer sur l'onglet Profiles en haut à gauche. Si vous utilisez un domaine géré, sélectionnez le bon profil pour configurer dans la boîte de sélection de Profile en haut et à droite. Par défaut, les profils ha et full-ha ont le sous-système mod_cluster activé. Si vous utilisez un serveur autonome, vous devez utiliser le profil standalone-ha ou standalone-full-ha pour démarrer le serveur. Cliquer sur l'élément Web dans le menu de gauche et choisissez mod_cluster dans le sous-menu. Les options sont expliquées dans les tableaux ci-dessous. La configuration générale est indiquée en premier, suivie de la configuration de sessions, les contextes web, proxy, SSL et réseautage. Chacune d'elles possède son propre onglet dans l'écran de configuration de mod_cluster

Note

La page de configuration mod_cluster n'est visible que pour les profils avec le sous-système HA Clustering subsystem activé. Ces profils sont ha et full-ha pour un domaine géré, ou standalone-ha et standalone-full-ha pour un serveur autonome.

Tableau 16.4. Options de configuration mod_cluster

Option Description Commande CLI
Groupe d'équilibrage des charges
Si non nulles, les requêtes devront être envoyées vers un groupe d'équilibrage de charges sur l'équilibreur de charges. Laisser cet espace vide si vous ne souhaitez pas utiliser ces groupes d'équilibrage des charges.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=load-balancing-group,value=myGroup)
Équilibreur
Le nom de l'équilibreur. Doit correspondre à la configuration du proxy HTTPD.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=balancer,value=myBalancer)
Socket Advertise
Le nom de la liaison de sockets à utiliser pour les annonces de cluster.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=advertise-socket,value=modcluster)
Clé Sécurité Advertise
Une chaîne contenant la clé de sécurité à annonce.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=advertise-security-key,value=myKey)
Advertise
Indique si les annonces sont activées. Valeur par défaut true.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=advertise,value=true)

Tableau 16.5. Options de configuration de session mod_cluster

Option Description Commande CLI
Sticky Session
Si vous souhaitez utiliser des sessions pour les demandes. Cela signifie qu'après que le client ait établi une connexion sur un nœud de cluster spécifique, leur transmission ultérieure est routée vers ce même nœud à moins qu'il ne soit plus disponible. La valeur par défaut est true, qui est le paramètre recommandé.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=sticky-session,value=true)
Sticky Session Force
Si sur true, la demande ne sera pas redirigée vers un nouveau nœud de cluster si son nœud initial n'est plus disponible. Au lieu de cela, elle échouera. La valeur par défaut est false.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=sticky-session-force,value=false)
Sticky Session Remove
Supprime les informations de session en cas d'échec. Désactivé par défaut.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=sticky-session-remove,value=false)

Tableau 16.6. Options de configuration de contexte web mod_cluster

Option Description Commande CLI
Auto Enable Contexts
Si on doit ajouter de nouveaux contextes à mod_cluster par défaut ou non. La valeur par défaut true. Si vous modifiez la valeur par défaut et que vous devez activer le contexte manuellement, l'application web peut activer son contexte à l'aide de la méthode MBean enable(), ou via le gestionnaire mod_cluster, une application web qui s'exécute sur le serveur proxy HTTPD, sur un hôte virtuel nommé ou le port qui est spécifié dans la configuration de cet HTTPD.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=auto-enable-contexts,value=true)
Excluded Contexts
Une liste séparée par des virgules de contextes que mod_cluster doit ignorer. Si aucun hôte n'est indiqué, l'hôte est censé être localhost. ROOT indique le contexte racine de l'application web. La valeur par défaut est ROOT,invoker,jbossws,juddi,console.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=excluded-contexts,value="ROOT,invoker,jbossws,juddi,console")

Tableau 16.7. Options de configuration proxy de mod_cluster

Option Description Commande CLI
Proxy URL
Si défini, cette valeur sera ajoutée à l'URL des commandes MCMP.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=proxy-url,value=myhost)
Proxy List
Une liste séparée par des virgules des adresses proxy HTTPD, dans le format hostname:port. Ceci indique la liste des serveurs proxy avec lesquels le processus de mod_cluster va tenter de communiquer au départ.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=proxy-list,value="127.0.0.1,127.0.0.2")
Configurer la Communication SSL pour mod_cluster

Par défaut, la communication mod_cluster a lieu sur un lien HTTP crypté. Si vous définissez le schéma du connecteur à HTTPS (voir Tableau 16.5, « Options de configuration de session mod_cluster »), les paramètres ci-dessous indiquent à mod_cluster où trouver les informations pour encoder la connexion.

Tableau 16.8. Options de configuration SSL de mod_cluster

Option Description Commande CLI
ssl
Indique si on doit activer SSL. Valeur par défaut false.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=ssl,value=true)
Clé Alias
Clé alias choisie quand le certificat est créé.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=key-alias,value=jboss)
Key Store
L'emplacement où le keystore garde les certificats clients
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=key-store,value=System.getProperty("user.home") + "/.keystore")
Key Store Type
Le type de keystore
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=key-store-type,value=JKS)
Key Store Provider
Le fournisseur de keystore
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=key-store-provider,value=IBMJCE)
Mot de passe
Mot de passe choisi quand le certificat est créé.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=password,value=changeit)
Trust Algorithm
L'algorithme de la fabrique de gestionnaire de confiance
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=trust-algorithm,value=PKIX)
Cert File
L'emplacement du fichier de certificats.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=ca-certificate-file,value=${user.home}/jboss.crt)
CRL File
Fichier de la liste de révocation du certificat.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=ca-crl-file,value=${user.home}/jboss.crl)
Max Certificate Length
La longueur maximum du certificat contenue dans le trust store. Valeur par défaut 5.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=trust-max-cert-length,value=5)
Key File
L'emplacement du fichier clé du certificat.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=certificate-key-file,value=${user.home}/.keystore)
Cipher Suite
La suite cipher d'encodage autorisée.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=cipher-suite,value=ALL)
Certificate Encoding Algorithms
L'algorithme de la fabrique de gestionnaire de clés.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=encoding-algorithms,value=ALL)
Revocation URL
L'URL de la liste de révocation de l'autorité de certificat
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=ca-revocation-url,value=jboss.crl)
Protocole
Les protocoles SSL activés.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=protocol,value=SSLv3)
Configurer les options de réseautage de mod_cluster

Les options de réseautage de mod_cluster contrôlent des comportements de timeout différents pour des types de services variés avec lesquels le service mod_cluster communique.

Tableau 16.9. Options de configuration de réseautage de mod_cluster

Option Description Commande CLI
Node Timeout
Timeout (en secondes) des connexions de proxy vers un nœud. C'est que le temps mod_cluster attendra la réponse de dorsal avant de retourner l'erreur. Cela correspond au délai d'attente dans la documentation de mod_proxy de travailleur. La valeur -1 n'indique aucun délai d'attente. Notez que mod_cluster utilise toujours un cping/cpong avant d'adresser une demande et la valeur connectiontimeout utilisée par mod_cluster est la valeur de ping.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=node-timeout,value=-1)
Socket Timeout
Nombre de millisecondes pendant lesquelles patienter avant d'obtenir une réponse d'un proxy httpd à des commandes MCMP avant le timeout, et indiquer erreur de proxy.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=socket-timeout,value=20)
Stop Context Timeout
Durée, mesurée dans les unités spécifiées par stopContextTimeoutUnit, pendant laquelle attendre l'arrêt net d'un contexte (fin des demandes en attente pour un contexte distribuable; ou destruction/expiration des sessions actives pour un contexte non distribuable).
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=stop-context-timeout,value=10)
Session Draining Strategy
Indique si on doit drainer les sessions avant de retirer le déploiement d'une application web.
DEFAULT
Sessions de drainage avant qu'une application web retire son déploiement si l'application web n'est pas distribuable.
ALWAYS
Toujours drainer les sessions avant le retrait du déploiement d'une application web, même pour les applications web distribuables.
NEVER
Ne pas drainer les sessions avant le retrait du déploiement d'une application web, même pour les applications web non distribuables.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=session-draining-strategy,value=DEFAULT)
Max Attempts
Nombre de fois qu'un proxy HTTPD va tenter d'envoyer une requête donnée à un worker avant d'abandonner. La valeur minimale est 1, ce qui signifie essayer une seule fois. La valeur par défaut du module mod_proxy est également 1, ce qui signifie qu'aucune nouvelle tentative ne se produit.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=max-attempts,value=1)
Flush Packets
Indique si on doit activer le vidage des paquets dans le serveur HTTPD. Valeur par défaut false.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=flush-packets,value=false)
Flush Wait
Durée, en secondes, pendant laquelle on doit attendre le vidage des paquets dans le serveur HTTPD. Une valeur -1. A value of -1 indique une attente indéfinie avant de vider les paquets.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=flush-wait,value=-1)
Ping
Durée, en secondes, pendant laquelle attendre un réponse au ping d'un noeud de cluster. Valeur par défaut 10 secondes.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=ping,value=10)
SMAX
Le nombre de soft connexions inactives maximales (le même que smax dans la documentation du module de worker mod_proxy). La valeur maximale dépend de la configuration de thread httpd et peut être ThreadsPerChild ou 1.
profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=smax,value=ThreadsPerChild)
TTL
Time To live (en secondes) pour les connexions inactives au dessus de smax, la valeur par défaut est 60
Quand nodeTimeout n'est pas défini, le Proxy de la directive ProxyTimeout est utilisé. Si ProxyTimeout n'est pas défini, alors le Timeout sera utilisé. La valeur par défaut est de 300 secondes. nodeTimeout, ProxyTimeout, et Timeout sont définis au niveau socket.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=ttl,value=-1)
Node Timeout
La durée d'attente, en secondes, pour le traitement d'une requête par un processus de travail de serveur HTTPD externe. Par défaut, -1, ce qui signifie que mod_cluster attend indéfiniment la requête traitée par le worker HTTPD.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=node-timeout,value=-1)
Options de configuration de Load provider de mod_cluster

Les options de configuration de mod_cluster suivantes ne sont pas disponibles dans la Console de gestion basée web, et ne peuvent être uniquement définies qu'en utilisant le Management CLI en ligne de commandes.

Le processeur de charge simple est utilisé si aucun processeur de charge dynamique n'est présent. Il donne à chaque membre du cluster un facteur de charge 1, et répartit uniformément les travaux sans prendre en compte un algorithme d'équilibrage de charges. Pour l'ajouter, utilisez la commande CLI suivante : /profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/simple-load-provider:add
Un fournisseur de charge dynamique peut être configuré pour utiliser une variété d'algorithmes, en combinaison, pour déterminer quel nœud de cluster recevra la demande suivante. Le fournisseur de charge dynamique par défaut utilise busyness (niveau d'activité) comme facteur déterminant. Vous trouverez ci-dessous la liste des facteurs possibles. Vous pouvez également créer votre propre fournisseur de charge en fonction de votre propre environnement. Les options suivantes du fournisseur de charge dynamique peuvent être modifiées. Notez que vous pouvez avoir plus d'un facteur (métrique) à tout moment. Il vous sufira de les ajouter par l'interface CLI.
:add-metric(type=cpu)

Tableau 16.10. Options Load provider dynamque de mod_cluster

Option Description Commande CLI
Decay
Le facteur par lequel les métriques historiques se désintègrent de façon significative.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/:write-attribute(name=decay,value=2)
Historique
Le nombre d'enregistrements de métriques de charge historique à considérer pour déterminer la charge.
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/:write-attribute(name=history,value=9)
Métrique de charge
Le seule métrique de charge inclus dans le fournisseur de charge dynamique de JBoss EAP 6 est busyness (niveau d'activité), qui tente d'envoyer chaque nouvelle requête au worker le moins occupé. Vous pouvez définir la capacité de votre worker (1 indique une capacité de 100 %) et le poids accordé au métrique de busyness global. .
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=busyness/:write-attribute(name=capacity,value=1.0)
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=busyness/:write-attribute(name=type,value=busyness)
/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=busyness/:write-attribute(name=weight,value=1)

Algorithmes de métriques de charge

cpu
Le métrique de charge cpu utilise la charge CPU moyenne pour déterminer quel nœud de cluster reçoit la charge de travail suivante.
mem
Le métrique de charge mem utilise la mémoire native RAM comme facteur de charge. L'utilisation de ce métrique est déconseillée car elle fournit une valeur qui inclut les tampons et le cache. C'est donc toujours un chiffre très faible sur chaque système décent pourvu d'une bonne gestion de mémoire.
heap
La métrique de charge de tas utilise l'usage de tas pour déterminer quel cluster reçoit la charge de travail suivante.
sessions
Le métrique de charge de session utilise le nombre de sessions actives comme métrique.
requêtes
Le métrique de charge de requêtes utilise le nombre de requêtes en provenance des clients pour déterminer quel nœud de cluster reçoit la charge de travail suivante. Par exemple, capacité 1000 signifie que 1000 requêtes/s est considéré comme une « pleine charge ».
send-traffic
Le métrique de charge send-traffic (trafic envoyé) utilise le volume de trafic envoyé à partir d'un nœud de worker vers les clients. Par ex. une capacité par défaut de 512 indique que le nœud doit être considéré en pleine charge, si le trafic sortant moyen est 512 KB/s ou supérieur.
receive-traffic
Le métrique de charge receive-traffic (réception de trafic) utilise le volume de trafic envoyé vers le nœud de worker en provenance des clients. Par ex. une capacité par défaut de 1024 indique que le nœud doit être considéré en pleine charge, si le trafic entrant moyen est 1024 KB/s ou supérieur.
busyness
Ce métrique représente le nombre de threads d'une pool de threads en train de répondre à des requêtes.

Exemple 16.1. Définir un métrique d'équilibrage de charges

/profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=cpu/:write-attribute(name="weight",value="3")