[AIX HP-UX Linux Solaris Windows]

Einen angepassten Advisor erstellen

Ein angepasster Advisor ist ein als Klassendatei bereitgestellter kurzer Java-Code, der vom Load-Balancer-Basiscode aufgerufen wird, um die Last eines Servers zu bestimmen. Der Basiscode stellt alle erforderlichen Verwaltungsdienste bereit, z. B. das Starten und Stoppen einer Instanz des angepassten Advisors, das Bereitstellen von Status und Berichten, das Aufzeichnen von Protokolldaten in einer Protokolldatei sowie das Berichten der Advisorergebnisse an die Managerkomponente.

Informationen zu dieser Task

Angepasste Advisor werden aufgerufen, nachdem native oder Standardadvisor gesucht wurden. Wenn Load Balancer einen angegebenen Advisor nicht in der Liste der Standardadvisor findet, verwendet er die Liste der angepassten Advisor. Wenn der Load-Balancer-Basiscode einen angepassten Advisor aufruft, geschieht Folgendes:
  1. Der Load-Balancer-Basiscode öffnet eine Verbindung zur Servermaschine.
  2. Wenn der Socket geöffnet wird, ruft der Basiscode die Funktion GetLoad des angegebenen Advisors auf.
  3. Die Funktion GetLoad des Advisors führt die Schritte aus, die der Benutzer für die Auswertung des Serverstatus definiert hat. Sie wartet unter anderem auch auf eine Antwort des Servers. Die Funktion wird nach dem Empfang der Antwort beendet.
  4. Anschließend schließt der Load-Balancer-Basiscode den Socket zum Server und übergibt die Lastinformationen an den Manager. Abhängig davon, ob der angepasste Advisor im normalen Modus oder im Ersetzungsmodus ausgeführt wird, führt der Basiscode manchmal nach Beendigung der Funktion GetLoad zusätzliche Berechnungen durch.
Angepasste Advisor können so gestaltet werden, dass sie entweder im normalen Modus oder im Ersetzungsmodus mit Load Balancer interagieren. Die Auswahl der Betriebsart wird in der Datei des angepassten Advisors als Parameter der Konstruktormethode angegeben. (Jeder Advisor wird basierend auf seinem Design nur in einem dieser Modi ausgeführt.)
  • Im normalen Modus tauscht der angepasste Advisor Daten mit dem Server aus. Der Basiscode des Advisors misst die Zeit für den Austausch und berechnet den Lastwert. Der Basiscode übergibt dann diesen Lastwert an den Manager. Der angepasste Advisor gibt den Wert null für Erfolg oder einen negativen Wert für einen Fehler zurück.

    Zur Angabe des normalen Modus müssen Sie das Flag "replace" der Methode "constructor" auf "false" setzen.

  • Im Ersetzungsmodus führt der Basiscode keine Zeitmessungen aus. Der angepasste Advisorcode führt alle angegebenen, für den Advisor spezifischen Anforderungen aus und gibt dann einen tatsächlichen Lastwert zurück. Der Basiscode akzeptiert den Lastwert und meldet diesen unverändert an den Manager. Um bestmögliche Ergebnisse zu erzielen, sollten Sie die Lastwerte zwischen 10 und 1000 normalisieren, wobei 10 einen schnellen Server und 1000 einen langsamen Server angibt.

    Zur Angabe des Ersetzungsmodus müssen Sie das Flag "replace" der Methode "constructor" auf "true" setzen.

Wie alle Advisor erweitert auch ein angepasster Advisor die Funktionalität der Advisorbasisklasse ADV_Base. Der Advisorbasiscode führt die meisten Funktionen des Advisors aus. So berichtet er beispielsweise Lastwerte an den Manager zurück, die im Wertigkeitsalgorithmus des Managers verwendet werden. Darüber hinaus stellt der Advisorbasiscode Socket-Verbindungen her, schließt Sockets und stellt Sende- und Empfangsmethoden für den Advisor bereit. Der Advisor wird nur zum Senden von Daten an den Port bzw. zum Empfangen von Daten vom Port des überprüften Servers verwendet. Die im Advisorbasiscode bereitgestellten TCP-Methoden sind zeitlich gesteuert, um die Last zu berechnen. Mit einem Flag der Methode constructor des Advisorbasiscodes kann bei Bedarf die vorhandene Last mit der neuen, vom Advisor zurückgegebenen Last überschrieben werden.
Anmerkung: Der Advisorbasiscode stellt in angegebenen Intervallen die Last ausgehend von einem in der Methode constructor festgelegten Wert für den Wertigkeitsalgorithmus bereit. Wenn der Advisor ihre Verarbeitung noch nicht abgeschlossen hat und keinen gültigen Lastwert zurückgeben kann, verwendet der Advisorbasiscode den zuvor berichteten Lastwert.

Prozedur

  1. Legen Sie für Ihren Advisor einen Namen fest. Die Dateinamen für angepasste Advisor müssen das Format ADV_Name.java haben, wobei Name für den Namen Ihres Advisors steht.
    Fehler vermeiden Fehler vermeiden:
    • Sie müssen für den Namen des Advisors das Präfix "ADV_" verwenden.
    • Sie müssen für den Namen des angepassten Advisors Kleinbuchstaben verwenden, damit der Bediener bei der Eingabe von Befehlen in einer Befehlszeile nicht auf die Groß-/Kleinschreibung achten muss.
    • Die Klasse des angepassten Advisors muss sich im Unterverzeichnis Installationsstammverzeichnis/lib/CustomAdvisors befinden.
    • Aufgrund von Java-Konventionen muss der Name der in der Datei definierten Klasse mit dem Namen der Datei übereinstimmen.
    gotcha
  2. Schreiben Sie Ihren angepassten Advisor. Eine Liste der Methoden und Funktionsaufrufe, die in Ihrem Advisor verwendet werden sollen, finden Sie im Artikel Methoden und Funktionsaufrufe angepasster Advisor. Beachten Sie, dass angepasste Advisor alle erforderlichen Routinen haben müssen. Advisor müssen die folgenden Basisklassenmethoden haben:
    • Eine Konstruktorroutine. Der Konstruktor ruft den Basisklassenkonstruktor auf.
    • Eine Methode ADV_AdvisorInitialize. Diese Methode bietet die Möglichkeit, zusätzliche Schritte auszuführen, nachdem die Initialisierung der Basisklasse abgeschlossen ist.
    • Eine getLoad-Routine. Die Basisadvisorklasse führt das Öffnen des Sockets aus. Die Methode "getLoad" muss nur die entsprechenden Sende- und Empfangsanforderungen absetzen, um den Advisorzyklus zu beenden.

  3. Kompilieren Sie den Advisor.
    • Sie müssen angepasste Advisor in der Programmiersprache Java schreiben und mit einem Java-Compiler kompilieren, der dieselbe Version wie der Load-Balancer-Code hat. Zum Überprüfen der auf Ihrem System vorhandenen Java-Version führen Sie den folgenden Befehl im Verzeichnis Installationsstammverzeichnis/java/bin aus:
      java -fullversion
      
      Wenn das aktuelle Verzeichnis nicht zu Ihrem Pfad gehört, müssen Sie angeben, dass Java aus dem aktuellen Verzeichnis ausgeführt werden soll, um sicherzustellen, dass Sie die richtigen Versionsinformationen erhalten. In diesem Fall führen Sie den folgenden Befehl im Verzeichnis Installationsstammverzeichnis/java/bin aus:
      ./java -fullversion
    • Während der Kompilierung wird auf die folgenden Dateien Bezug genommen:
    • Die Umgebungsvariable classpath muss während der Kompilierung auf beide Dateien (angepasste Advisordatei und Basisklassendatei) zeigen. Ein Kompilierbefehl kann das folgende Format haben, wenn sich der Advisor im aktuellen Verzeichnis befindet:
      Installationspfad/java/bin/javac -classpath Installationsstammverzeichnis/servers/lib/ibmlb.jar ADV-Name.java
    • Die Ausgabe der Kompilierung ist eine Klassendatei, z. B. "ADV-Name.class". Kopieren Sie vor dem Starten des Advisors die Klassendatei in das Verzeichnis Installationsstammverzeichnis/servers/lib/CustomAdvisors/.
    Anmerkung: Angepasste Advisor können unter einem Betriebssystem kompiliert und unter einem anderen Betriebssystem ausgeführt werden. Sie können Ihren Advisor beispielsweise auf einem Windows-System kompilieren, die generierte Klassendatei im Binärformat auf eine Linux-Maschine kopieren und den angepassten Advisor dort ausführen. Bei den Betriebssystemen AIX, HP-UX, Linux und Solaris ist die Syntax ähnlich.
  4. Führen Sie den angepasste Advisor aus. Angepasste Advisor werden aufgerufen, wenn keine nativen oder Standardadvisor gefunden werden. Wenn Load Balancer einen angegebenen Advisor nicht in der Liste der Standardadvisor findet, verwendet er die Liste der angepassten Advisor.
    1. Kopieren Sie die Klassendatei des Advisors in das Unterverzeichnis "CustomAdvisors" auf der Load-Balancer-Maschine, sofern Sie dies noch nicht getan haben. Für einen angepassten Advisor mit dem Namen "myping" lautet der Dateipfad beispielsweise Installationsstammverzeichnis/servers/lib/CustomAdvisors/ADV_myping.class.
    2. Konfigurieren Sie Load Balancer, starten Sie die Managerfunktion, und setzen Sie den Befehl zum Starten des angepassten Advisors ab. Der angepasste Advisor wird mit dem Advisornamen ohne das Präfix ADV_ und mit der Dateierweiterung angegeben:
      dscontrol advisor start Name.erw Port
      Die im Befehl angegebene Portnummer steht für den Port, an dem der Advisor eine Verbindung zum Zielserver öffnet.



Unterartikel
Methoden und Funktionsaufrufe angepasster Advisor
Servicespezifische Empfehlungen mit der Option "advisorrequest" bzw. "advisorresponse" abrufen
rprf_selfadv2tier.html
Zugehörige Verweise
Task-Artikel Task-Artikel    

Nutzungsbedingungen | Feedback

last-updated-altLetzte Aktualisierung: Jul 5, 2011 11:00:34 AM EDT
Dateiname: tprf_advcust.html