Automatische Skalierung für Liberty-Verbünde einrichten
Bei der automatischen Skalierung handelt es sich um eine autonome Skalierungsfunktion von Liberty-Servern. Die automatische Skalierung wird über zwei Liberty-Features aktiviert, den Skalierungscontroller und das Skalierungsmember. Bei der automatischen Skalierung wird die Anzahl der für Ihre Workload verwendeten JVMs dynamisch angepasst. Dieses Feature sorgt für Beweglichkeit der Geschäftsabläufe und senkt den Verwaltungsaufwand. Dadurch wird die Flexibilität Ihrer Middlewareumgebung erhöht. Die Bedingungen für die automatische Skalierung werden in Skalierungsrichtlinien definiert. Zu diesen Bedingungen gehören die Mindestanzahl und die maximale Anzahl der Serverinstanzen und die Schwellenwerte für die einzelnen Serverressourcen.
Vorbereitende Schritte
Für dieses Feature muss nicht Dynamic Routing verwendet werden. Allerdings weist die automatische Skalierung eine gute Leistung auf, wenn beide Features zusammen verwendet werden. Die Verwendung beider Features wird daher auch empfohlen. Weitere Informationen zu Dynamic Routing finden Sie unter Dynamisches Routing für Liberty-Verbünde konfigurieren.
Liberty-Verbundcontroller können das Toolkit Tivoli Remote Execution and Access (RXA) verwenden, um ausgewählte Operationen für Verbundmember auszuführen. Informieren Sie sich anhand der Aufgaben im Abschnitt RXA für Operationen des Liberty-Verbunds einrichten über die Installation und Verwendung von SSH.
Bevor Sie die automatische Skalierung konfigurieren, müssen Sie Ihren JAVA_HOME-Pfad festlegen. Sehen Sie sich dazu die Aufgaben im Abschnitt Variable JAVA_HOME für Liberty-Verbundmember und -Controller setzen an.
Informationen zu diesem Vorgang
Ein Cluster mit automatischer Skalierung ist ein Server-Cluster, der abhängig von der Workload in Ihrer Umgebung erweitert oder verkleinert werden kann. Der Liberty-Skalierungscontroller steuert das Starten und Stoppen von Skalierungsmembern ausgehend von Leistungsdaten, die von den Skalierungsmembern gesammelt werden, und von konfigurierbaren Skalierungsrichtlinien. Ein Liberty-Skalierungscontroller, der ein Skalierungsmember eines Server-Clusters sein soll, muss auch ein Member eines Liberty-Verbunds sein. Ein Server-Cluster hat innerhalb eines Liberty-Verbunds einen eindeutigen Namen. In Liberty haben Member desselben Server-Clusters denselben Clusternamen, wenn sie sich in demselben Verbund befinden. Die Funktionen für automatische Skalierung werden mit Richtlinien gesteuert, wenn der Ressourcenverbrauch einen oberen Schwellenwert überschreitet oder einen unteren Schwellenwert unterschreitet.
- scalingController-1.0
Das Skalierungscontroller-Feature entscheidet, wann ein Cluster mit automatischer Skalierung erweitert oder verkleinert werden soll. Verbundcontroller sind erforderlich, weil sie Verwaltungsfunktionen bereitstellen, mit denen der Verbundcontroller den Skalierungscontroller verwalten kann. Nur einer der aktiven Skalierungscontroller kann Entscheidungen treffen. Weitere Informationen zu Verbundcontrollern und zum Konfigurieren Ihrer Controller für hohe Verfügbarkeit finden Sie unter Liberty-Verbund konfigurieren. Der Skalierungscontroller kann infolge einer erhöhten Ressourcennutzung ein Member eines Clusters mit automatischer Skalierung starten oder ein solches Member bei verringerter Ressourcennutzung im gesamten Cluster stoppen. Wenn Replikatgruppen verwendet werden, müssen alle Verbund-Controller-Member Skalierungscontroller sein. Werden Replikatgruppen verwendet, wenn ein Controller gestoppt wird, übernimmt ein anderer aktiver Skalierungscontroller dessen Funktion. Weitere Informationen zu Replikatgruppen finden Sie unter Liberty-Verbundreplikatgruppen konfigurieren.
Anmerkung: Der Skalierungscontroller merkt sich den letzten bekannten Status der Skalierungsmember. Das Stoppen des Skalierungscontrollers und das Ändern des Status der Skalierungsmember kann beim Neustart des Skalierungscontrollers zu ungültigen Aktionen führen, bis der Skalierungscontroller den neuesten Status der Skalierungsmember erfasst hat.Der Skalierungscontroller unterstützt die folgenden Einsatzszenarien:- JVM-Elastizität
Der Skalierungscontroller startet und stoppt vorhandene Liberty-Server ausgehend von der Ressourcennutzung und optional von Skalierungsrichtlinien. Es werden keine neuen Server bereitgestellt.
- Liberty-Elastizität
Der Skalierungscontroller kann Liberty-Software auf registrierten Hosts installieren, neue Server bereitstellen und diese Server anschließend basierend auf der Ressourcennutzung und optionalen Skalierungsrichtlinien starten und stoppen.
- JVM-Elastizität
- scalingMember-1.0
Das Skalierungsmember-Feature überwachen die Workload innerhalb des Servers und des Hosts. Wenn erforderlich, werden entsprechende Informationen an den Skalierungscontroller zurückgesendet. Das Skalierungsmember-Feature muss als Verbundmember in einem Verbund aktiviert werden.
Anmerkung: Alle Skalierungsmember-Server müssen ebenfalls zu einem Cluster gehören, weil alle Richtlinieninformationen auf das Cluster-Member angewendet werden.Wenn auf einem Host mindestens zwei Skalierungsmember vorhanden sind, werden diese so organisiert, dass nur ein einziges Skalierungsmember mit dem Skalierungscontroller kommuniziert. Von den Skalierungsmembern auf einem Host wird ein Member als Host-Leader nominiert. Wenn der Host-Leader gestoppt wird, übernimmt ein anderes Skalierungsmember die Funktion des Host-Leaders.
Jedes Skalierungsmember muss ein Element hostSingleton mit einem Port in der Datei server.xml definieren. Alle Skalierungsmember eines Hosts und eines Clusters müssen denselben Port verwenden. Dieser Port wird von einem Auswahlservice verwendet, um einen Host-Leader zu bestimmen. Der Host-Leader ist das einzige Skalierungsmember, das mit dem Skalierungscontroller kommuniziert. Die Host-Leader teilt dem Controller Metrikdaten von den Membern und den Membern vom Controller getroffene Skalierungsentscheidungen mit. Beispiel:
<hostSingleton name="ScalingMemberSingletonService" port="5164" />
Weitere Informationen zum Element hostSingleton finden Sie unter Collective Member.
Das Skalierungsmember überwacht die Verwendung folgender Ressourcen innerhalb des Serverprozesses:- CPU
- Heapspeicher
- Hauptspeicher
Das Skalierungsmember überwacht die Verwendung folgender Ressourcen auf Hostebene:- CPU
- Hauptspeicher
Vorgehensweise
Ergebnisse
Bei aktiviertem Feature für automatische Skalierung können Sie die Anzahl der JVMs oder der Liberty-Server, die für Ihre Workload verwendet werden, dynamisch anpassen.