Vous pouvez configurer une collectivité pour la prise en
charge de
l'élasticité JVM. Avec l'élasticité JVM, le contrôleur
de mise à l'échelle peut démarrer ou arrêter les serveurs Liberty en
fonction de l'utilisation des ressources et de règles de mise à
l'échelle. Seuls les serveurs figurant déjà dans la collectivité
sont admissibles pour une mise à l'échelle. Il n'existe pas
d'application des accès pour les nouveaux serveurs.
Avant de commencer
Les types d'informations d'utilisation des ressources
collectées diffèrent entre les différentes versions de
JDK. IBM JDK 1.7 pour Windows et Linux fournit toutes les
informations d'utilisation nécessaires pour une mise à l'échelle
automatique et il s'agit de la version
JDK préférée. Les autres versions de JDK ne fournissent peut-être pas
toutes les informations d'utilisation nécessaires pour une mise à
l'échelle automatique basée sur une utilisation des ressources
JVM individuelles.
Procédure
- Créez une collectivité.
Pour plus de détails sur la création d'un contrôleur de
collectivité et d'un serveur membre, voir
Configuration d'une collectivité Liberty.
Remarque : Il est recommandé d'effectuer la première étape avant de
continuer. Cette étape indique à l'utilisateur comment créer la
collectivité, ajouter des membres, puis démarrer les contrôleur et
les membres.
- Ajoutez la fonction
scalingController-1.0
dans le fichier
server.xml d'un ou de plusieurs contrôleurs de
collectivité. Lorsque vous sauvegardez le fichier
server.xml,
des règles par défaut s'appliquent sauf indication contraire.
<featureManager>
<feature>jsp-2.2</feature>
<feature>collectiveController-1.0</feature>
<feature>scalingController-1.0</feature>
</featureManager>
Une fois la fonction ajoutée, les messages suivants
s'affichent dans n'importe quel ordre dans le fichier
messages.log du contrôleur de collectivité, à
condition que ce dernier soit en cours d'exécution :
CWWKV0300I: Le service StackManager est démarré.
CWWKV0302I: Les piles existantes sont les suivantes : []
CWWKV0100I: La fonction ScalingController a été activée.
CWWKX1002I: Service singleton ScalingControllerSingletonService pour la portée
CWWKV0102I: This server is elected to be the primary scaling
controller.
CWWKF0012I: Le serveur a installé les fonctions suivantes : [scalingController-1.0].
Remarque : Etant donné que la
configuration Liberty est dynamique, lorsque vous ajoutez le
contrôleur de mise à l'échelle,
la règle de mise à l'échelle par défaut du contrôleur entre en
vigueur et vous pouvez obtenir des résultats inattendus. Par
exemple, la règle par défaut indique min=2
servers, de sorte que lorsque vous sauvegardez le fichier
server.xml du contrôleur de mise à l'échelle, ce
dernier essaie de démarrer deux serveurs. Si vous ne souhaitez pas
ce comportement, vous pouvez définir une règle pour le contrôleur en
même temps.
Remarque : L'enregistrement du membre et
l'affichage du message CWWKV0121I peuvent demander un certain
temps au contrôleur de mise à l'échelle.
- Facultatif : Modifiez les règles de mise à
l'échelle par défaut afin de les adapter aux besoins de votre
environnement. Pour plus d'informations, voir
Définition de règles de mise à l'échelle.
- Ajoutez les fonctions
clusterMember-1.0
et scalingMember-1.0 à tous les membres de
collectivité qui doivent être contrôlés par le contrôleur de
mise à l'échelle. Définissez un élément hostSingleton
avec un port dans les fichiers
server.xml du membre. Chaque
membre de mise à l'échelle doit définir un élément
hostSingleton avec un port
dans le fichier server.xml. Tous les membres
de mise à l'échelle sur le même hôte doivent
utiliser le même port. Vous pouvez indiquer n'importe quel numéro de
port, mais ce numéro de port doit être
unique sur l'ordinateur hôte. L'exemple suivant utilise le numéro de
port 20020 :
<featureManager>
<feature>jsp-2.2</feature>
<feature>clusterMember-1.0</feature>
<feature>scalingMember-1.0</feature>
</featureManager>
<hostSingleton name="ScalingMemberSingletonService" port="20020 " />
Si le serveur n'est pas démarré lorsque vous ajoutez les
fonctions et l'élément hostSingleton, vous devez
le démarrer manuellement une fois pour que le serveur de mise à
l'échelle reconnaisse les fonctions ajoutées. Les
messages suivants s'affichent dans n'importe quel autre dans le
fichier messages.log du membre de collectivité :
CWWKX1000I: Le bean géré SingletonMessenger est disponible.
CWWKX7400I: Le bean géré ClusterMember est disponible.
CWWKX1002I: Le service Singleton ScalingMemberSingletonService pour l'hôte de portée est créé.
CWWKV0200I: The ScalingMember feature is activated.
CWWKX1004I: La connexion Messenger est connectée à hôte=controller_host_name, port=controller_port_number.
Un seul membre de mise à l'échelle par hôte
communique avec le contrôleur de mise à l'échelle.
Le premier membre de mise à l'échelle à se
connecter au service
ScalingMemberSingletonService est désigné
comme
hôte leader. Si l'hôte leader s'arrête, un autre membre de
mise à l'échelle prend le relais d'hôte leader via un
processus de
choix arbitré par le service scalingMemberSingletonService.
Tous les membres de mise à l'échelle sur le même hôte et
cluster doivent
utiliser le même port ScalingMemberSingletonService.
Remarque : Lorsqu'un membre de mise à l'échelle
est designé comme hôte leader,
vous voyez le message suivant dans le fichier
messages.log du membre de collectivité :
CWWKV0203I: Server host=host_name;
userdir=path_to_usr_directory;
server=member_name;
port=member_port_number;
service=ScalingMemberSingletonService; scope=host a été désigné comme hôte leader.
Remarque : Si vous n'ajoutez pas l'élément
hostSingleton
dans le fichier
server.xml du membre de mise à
l'échelle ou si vous vous utilisez des ports
différents sur chaque membre de mise à
l'échelle sur le même hôte,
plusieurs hôtes
leaders peuvent être désignés. Cela peut se traduire par des
décisions de mise à l'échelle incorrectes.
Vous voyez alors le message suivant dans le fichier
messages.log du contrôleur :
CWWKV0123E: Des doublons d'hôte leader ont été détectés sur l'hôte host_name. Cette situation peut dégrader les décisions du contrôleur de mise à
l'échelle. L'identité du leader du serveur server_name1 est
leader_id1. L'identité du leader du serveur server_name2 est
leader_id2.
Pour plus d'informations sur l'élément
hostSingleton, voir
Collective Member.
![[8.5.5.5 ou ultérieure]](../ng_v8555.gif)
Lecture : La vidéo
Configuring
a Liberty auto-scalable cluster for JVM elasticity video
présente la procédure. [Transcription]