Sie können einen Verbund so konfigurieren, dass er die JVM-Elastizität unterstützt. Mit JVM-Elastizität kann der Skalierungscontroller Liberty-Server ausgehend von der Ressourcennutzung und von Skalierungsrichtlinien starten oder stoppen. Nur die bereits zum Verbund gehörenden Server kommen für die Skalierung
infrage. Es werden keine neuen Server bereitgestellt.
Vorbereitende Schritte
Welche Arten von Ressourcennutzungsinformationen gesammelt werden, richtet sich nach dem jeweiligen JDK. IBM JDK 1.7 für
Windows- und Linux-Betriebssysteme stellt alle erforderlichen Nutzungsinformationen für die automatische Skalierung bereit und ist das bevorzugte
JDK. Andere JDKs stellen möglicherweise nicht alle erforderlichen Informationen zur Ressourcennutzung für jede einzelne JVM bereit.
Fehler vermeiden: Die Administrationskonsole lässt den Start und das Stoppen eines Liberty-Servers, der ein Cluster-Member eines automatisch skalierbaren Clusters ist, nur dann zu, wenn sich der Server im Wartungsmodus befindet. Das Starten und Stoppen eines Liberty-Servers, der ein Cluster-Member eines automatisch skalierbaren Clusters ist, kann zu unvorhersehbaren Ergebnissen führen.
Vorgehensweise
- Erstellen Sie einen Verbund.
Einzelheiten zur Erstellung eines Verbundcontrollers und eines Member-Servers finden Sie unter
Liberty-Verbund konfigurieren.
Anmerkung: Bevor Sie fortfahren, sollten Sie Schritt eins ausführen. In Schritt eins finden Sie die Anweisungen für das Erstellen
des Verbunds, das Hinzufügen von Membern sowie das Starten der Controller und Member.
- Fügen Sie das Feature scalingController-1.0 zur Datei server.xml mindestens eines Verbundcontrollers hinzu.
Wenn Sie die Datei server.xml speichern, werden Standardrichtlinien umgesetzt, sofern nichts anderes angegeben ist.
<featureManager> <feature>jsp-2.2</feature>
<feature>collectiveController-1.0</feature>
<feature>scalingController-1.0</feature>
</featureManager>
Nach dem Hinzufügen des Features werden in der Datei
messages.log des Verbundcontrollers die folgenden Nachrichten in beliebiger Reihenfolge angezeigt, sofern der
Verbundcontroller aktiv ist:
CWWKV0300I: Der StackManager-Service wurde gestartet.
CWWKV0302I: Die folgenden Stacks sind vorhanden: []
CWWKV0100I: Das Feature ScalingController ist aktiviert.
CWWKX1002I: Der Singleton-Service ScalingControllerSingletonService für den Geltungsbereich [] wurde erstellt.
CWWKV0102I: Dieser Server wurde als primärer Skalierungscontroller ausgewählt.
CWWKF0012I: Im Server wurden die folgenden Features installiert: [scalingController-1.0].
Anmerkung: Da die Liberty-Konfiguration dynamisch ist, tritt beim Hinzufügen des Skalierungscontrollers dessen Standardskalierungsrichtlinie in Kraft, sodass es zu unerwarteten Ergebnissen kommen kann. In der Standardrichtlinie ist beispielsweise ein Minimum von zwei Servern angegeben.
Wenn Sie also die Datei server.xml des Skalierungscontrollers speichern, versucht der Controller, zwei Server zu starten. Wenn dieses Verhalten nicht
erwünscht ist, können Sie gleich eine Richtlinie für den Controller definieren.
Anmerkung: Es kann einige Zeit dauern, bis der
Skalierungscontroller das Member registriert hat und die Nachricht CWWKV0121I anzeigt.
- Optional: Ändern Sie den Standardwert für die Skalierungsrichtlinien entsprechend den Anforderungen Ihrer Umgebung. Weitere Informationen finden Sie unter Skalierungsrichtlinien zur Verwaltung der Workload definieren.
- Fügen Sie das Feature scalingMember-1.0 allen Verbundmembern hinzu, die vom Skalierungscontroller gesteuert werden sollen. Definieren Sie ein Element hostSingleton mit einem Port in der Datei
server.xml der Member. In der Datei server.xml jedes Skalierungsmembers muss
ein Element hostSingleton mit einem Port definiert sein. Alle Skalierungsmember eines Hosts müssen denselben Port verwenden. Sie können eine beliebige Portnummer angeben, die jedoch
auf dem Host eindeutig sein muss. Im folgenden Beispiel wird die Portnummer
20020 verwendet:
<featureManager> <feature>jsp-2.2</feature>
<feature>scalingMember-1.0</feature>
</featureManager>
<hostSingleton name="ScalingMemberSingletonService" port="20020 " />
Wenn der Server nach dem Hinzufügen der Features und des Elements
hostSingleton nicht gestartet wird, müssen Sie ihn einmal manuell starten, damit der Skalierungscontroller die hinzugefügten
Features erkennt. In der Datei
messages.log des Verbundmembers werden die folgenden Nachrichten in beliebiger Reihenfolge angezeigt:
CWWKX1000I: Die MBean SingletonMessenger ist verfügbar.
CWWKX7400I: Die MBean ClusterMember ist verfügbar.
CWWKX1002I: Der Singleton-Service ScalingMemberSingletonService für den Geltungsbereich Host wurde erstellt.
CWWKV0200I: Das Feature ScalingMember ist aktiviert.
CWWKX1004I: Die Messenger-Verbindung zum Host Controllerhostname an Port Controllerportnummer wurde hergestellt.
Mit dem Skalierungscontroller kommuniziert nur ein Skalierungsmember pro Host. Das erste Skalierungsmember, das eine Verbindung
zum ScalingMemberSingletonService herstellt, wird zum Host-Leader bestimmt. Wenn der Host-Leader gestoppt wird, wird vom
scalingMemberSingletonService
in einem Auswahlprozess entschieden, welches andere Skalierungsmember
die Aufgaben des Host-Leaders übernimmt. Alle Skalierungsmember eines Hosts und eines Clusters müssen denselben ScalingMemberSingletonService-Port verwenden.
Anmerkung: Wenn ein Skalierungsmember zum Host-Leader bestimmt wurde, sehen Sie in der Datei
messages.log des Verbundmembers die folgende Nachricht:
CWWKV0203I: Der Server host=Hostname; userdir=Pfad_zum_Benutzerverzeichnis; server=Membername; port=Memberportnummer; service=ScalingMemberSingletonService; scope=host wurde als Host-Leader ausgewählt.
Anmerkung: Wenn Sie das Element
hostSingleton nicht zur Datei
server.xml des Skalierungsmembers hinzufügen oder für jedes Skalierungsmember einen anderen Port verwenden,
könnten mehrere Host-Leader gewählt werden. Dies kann zu falschen Skalierungsentscheidungen führen. Die folgende Nachricht wird in der Datei
messages.log des Controllers angezeigt:
CWWKV0123E: Es wurden doppelte Host-Singleton-Leader auf dem Host Hostname erkannt. Dies kann zur Beeinträchtigung der Entscheidungen des Skalierungscontrollers
führen. Die Leader-ID von Server Servername1 ist Leader-ID1. Die Leader-ID von Server Servername2 ist Leader-ID2.
Weitere Informationen zum Element hostSingleton finden Sie unter Collective Member.
Video: Im Video Configuring a Liberty
auto-scalable cluster for JVM elasticity werden die Schritte veranschaulicht. [Transkript]