Un conseiller personnalisé est un petit programme Java faisant office de fichier classe et que le code de base de
Load Balancer appelle pour déterminer la charge d'un serveur. Le code de base fournit tous les services administratifs nécessaires (le démarrage et l'arrêt d'une
instance du conseiller personnalisé, la génération d'états et de rapports, l'enregistrement des informations de l'historique dans un fichier journal et le renvoi
des résultats du conseiller au composant gestionnaire, par exemple).
A propos de cette tâche
Les conseillers personnalisés sont appelés après que les conseillers natifs, ou standard, ont été recherchés. Si Load Balancer ne trouve pas de conseiller particulier dans la liste des conseillers standard,
il consulte la liste des conseillers personnalisés. Si le code de base de Load Balancer appelle un conseiller personnalisé,
la procédure suivante se déroule :
- Le code de base de Load Balancer ouvre une connexion avec le serveur.
- Si la connexion s'ouvre, le code de base appelle la fonction GetLoad du conseiller spécifié.
- La fonction GetLoad suit la procédure d'évaluation de l'état du serveur définie par l'utilisateur, y compris l'attente d'une réponse de la part du
serveur. La fonction met fin à la procédure après avoir obtenu la réponse.
- Le code de base de Load Manager ferme la connexion au serveur et envoie au gestionnaire les informations relatives à la charge. Selon que le conseiller
personnalisé fonctionne en mode normal ou en mode remplacement, le code de base procède parfois à des calculs supplémentaires à l'issue de la fonction GetLoad.
Les conseillers personnalisés peuvent être conçus pour interagir avec Load Balancer en mode norme ou en mode remplacement. Le choix du mode est défini dans le fichier du conseiller personnalisé sous la forme d'un paramètre dans la méthode du constructeur. (chaque conseiller fonctionne uniquement dans
ces modes, selon sa conception).
- Mode normal : le conseiller personnalisé échange des données avec le serveur et le code du conseiller de base évalue la durée de l'échange et
calcule la valeur de la charge.
Le code de base
renvoie cette valeur au gestionnaire. Le conseiller personnalisé renvoie la valeur zéro pour indiquer un succès ou une valeur négative pour signaler une erreur.
Pour spécifier le mode normal, attribuez la valeur false à l'indicateur replace du constructeur.
- Mode replace : le code de base n'effectue aucune mesure de temps.
Le code du conseiller personnalisé effectue toutes les opérations définies en fonction de ses conditions uniques, puis il retourne une valeur de charge. Le code de base accepte cette valeur et la communique sans la modifier au gestionnaire. Pour optimiser les résultats, normalisez les valeurs de charge entre 10 et 1 000, 10 correspondant à un serveur rapide et 1 000, à un serveur lent.
Pour spécifier le mode replace, attribuez la valeur true à l'indicateur replace du constructeur.
A l'instar de tous les conseillers, un conseiller personnalisé étend la fonctionnalité de la classe de base du conseiller, appelée ADV_Base. La base du conseiller effectue la plupart des fonctions du
conseiller, telles que la communication des charges au gestionnaire
afin que ces dernières soient utilisées dans l'algorithme de
pondération du gestionnaire. La base du conseiller effectue également
les opérations de connexion et de fermeture de la connexion et
fournit des méthodes d'envoi et de réception qui seront utilisées par
le conseiller. Le conseiller est utilisé uniquement pour envoyer et recevoir des données sur le port défini pour le serveur analysé. Les méthodes TCP fournies dans la base du conseiller sont programmées pour calculer la charge.
Un indicateur du constructeur de la base du conseiller remplace la charge
existante par la nouvelle charge renvoyée du conseiller, s'il le souhaite.
Remarque : Selon la valeur définie dans le constructeur, la base du
conseiller fournit la charge à l'algorithme de pondération à une certaine fréquence. Si le conseiller n'a pas terminé ses
opérations et ne peut pas renvoyer de charge valide, la base du conseiller utilise la charge précédente.