Einführung / FirstSpirit ServerManager / Server-Eigenschaften / Clustering

Clustering

 

Als Clustering ist in diesem Fall die Lastverteilung bei der Generierung von Projekten auf weitere FirstSpirit-Server gemeint („horizontale Skalierbarkeit“).

Zum Konzept und Architekturbeschreibung siehe Clustering - Lastverteilung bei der Generierung

Ab der FirstSpirit-Version Verfügbar ab FirstSpirit-Version 2024.7 wurde das Clustering einer umfassenden Überarbeitung unterzogen. Der Fokus lag hierbei auf eine signifikante Vereinfachung der Konfiguration sowie den Verzicht auf gemeinsam genutzte Dateisysteme (siehe Konfiguration bis 2024.6)

Wichtig Master- und Slave-Server müssen sich im gleichen Netzwerk befinden.

Neue KonfigurationVerfügbar ab FirstSpirit-Version 2024.7

Ein gemeinsames Dateisystem zwischen dem Master und den Cluster-Knoten stellt zwar keine zwingende Voraussetzung mehr dar, bleibt jedoch weiterhin optional möglich.

Um Cluster-Knoten zu unterstützen, ist auf dem Master keine Konfiguration mehr nötig. Der Master zeigt nur noch an, welche Cluster-Knoten gerade verbunden sind, einschließlich ihres aktuellen Status.

Der Button "Slave deregistrieren" dient ausschließlich dem Zweck, Informationen über Cluster-Knoten zu entfernen, die zuvor mit dem Master verbunden waren.

Auch im ServerMonitoring unter „FirstSpirit / Clustering“ sind die Informationen über die aktuellen Cluster-Knoten vorhanden.

Konfiguration eines Cluster-Knotens

Um einen Cluster-Knoten zu starten, kann der reguläre FirstSpirit-Installer verwendet werden. Es ist lediglich erforderlich, die Datei fs-wrapper.isolated.conf um die folgenden Parameter zu ergänzen:

wrapper.java.additional.1=-Dregistry.file=ClusterNode.properties
wrapper.java.additional.2=-Dfirstspirit.host=<Hostname of the master server>
wrapper.java.additional.3=-Dfirstspirit.port=<SOCKET Port of the master server>

Beim Start des Cluster-Servers wird dieser automatisch eine Verbindung zum Master-Server herstellen und anschließend die entsprechenden Aufträge ausführen.

Neben der Wrapper-Konfiguration gibt es eine Reihe weiterer Parameter, die alternativ auch über Umgebungsvariablen gesetzt werden können. Die meisten davon sind optional. Nur die drei oben erwähnten Parameter sind zwingend für einen Cluster-Knoten nötig. Es gibt auch einen neuen Server-Konfigurationsparameter, der aber ebenfalls optional ist. Der Standardwert sollte meist passend sein.

Überblick über alle möglichen Parameter:

EnvironmentJavaServer-ConfBeschreibung
FS_CLUSTER_SCHEDULER cluster.slaveSchedulerScheduler-Strategie, mit der der Master Aufgaben an die Slaves verteilt.
Mögliche Werte:

  • LeastTasks (default)
  • LeastLoad
  • RoundRobin

    
FS_NODE_UUIDfs.node.uuid UUID des Nodes (Master oder Slave)
Optional, wird sonst zufällig vergeben.
    
FS_NODE_HOSTfs.node.host Hostname des Nodes (Slave)
Optional, wird sonst automatisch ermittelt.
    
FS_HOSTfirstspirit.host Hostname des MastersVerbindungsparameter für den Slave.
    
FS_PORTfirstspirit.port Port des Masters Verbindungsparameter für den Slave.
    
FS_ENCRYPTIONfirstspirit.encryption Verschlüsselung
Standardwert: 2 = ChaCha20 Verbindungsparameter für den Slave.
    
FS_COMPRESSIONfirstspirit.compression Komprimierung
Standardwert: 4 = Zstd
Verbindungsparameter für den Slave.
    
FS_PASSWORDfirstspirit.password Applikations-Passwort
Standardwert ist das interne Standard-Passwort.
Verbindungsparameter für den Slave.
    
FS_SSL_*fs.ssl.* Wenn TLS benutzt wird, werden verschiedene optionale Keystore-Parameter verwendet. Verbindungsparameter für den Slave.
    
FS_CLUSTER_SYNCfs.cluster.sync Schedule-Konfiguration- und -Log-Synchronisation von den Slaves zum Master
Standardwert: true
Wenn für Master und Slaves dasselbe geteilte Volume benutzt wird, ist ein Sync unnötig und der Parameter kann auf false gesetzt werden.
    
FS_TOMCAT_URL  Externe Tomcat-URL
Wird nur beim ersten Serverstart für die Konfiguration des Webservers benutzt.
    
FS_INTERNAL_TOMCAT_URL  Interne Tomcat-URL
Wird nur beim ersten Serverstart zur Konfiguration des Webservers benutzt.
    
FS_TOMCAT_USERNAME  Tomcat-Manager-Benutzer
Wird nur beim ersten Serverstart zur Konfiguration des Webservers benutzt.
    
FS_TOMCAT_PASSWORD  Tomcat-Manager-Passwort
Wird nur beim ersten Serverstart zur Konfiguration des Webservers benutzt.
    
FS_WRAPPER_CONF  Wrapper-Konfiguration, die zum Starten benutzt wird.
Die Slaves benutzen fs-wrapper.isolated.slave.conf, der Master fs-wrapper.isolated.conf (Default).
    
FS_REGISTRY_FILEregistry.file FactoryRegistry-Konfiguration
Z. B. ClusterNode.properties, wenn ein Slave gestartet werden soll. Muss in der Regel nicht gesetzt werden, kann alternativ zur Wrapper-Konfiguration benutzt werden.
    
FS_SERVER_LIB  Pfad zum Server-Jar
Wird vom Entrypoint des Docker-Containers benutzt und muss in der Regel nicht manuell gesetzt werden.
    
FS_JAVA_HOME  Java-Home-Pfad
Wird vom Entrypoint des Docker-Containers benutzt und muss in der Regel nicht manuell gesetzt werden.
    

 

Nutzen Master und Slaves ein gemeinsames Dateisystem (optional), ist der Parameter

-Dfs.cluster.sync=false

zu setzen, um die dann unnötige Synchronisation und das Kopieren von Log- und Konfigurationsdateien zu unterbinden.

Frühere KonfigurationVerfügbar bis FirstSpirit-Version 2024.6

Im Bereich „Clustering“ kann ein FirstSpirit-Server als Master- oder Slave-Server für den Betrieb in einem Clusterverbund registriert werden.

Wichtig Kein Mischbetrieb in Clusterumgebungen möglich:
Ein Mischbetrieb von Isolated-Servern und Legacy-Servern (siehe dazu Modulentwicklung "Isolated" (→Leitfaden Isolated Mode)) in einem Clusterverbund ist nicht zulässig. Damit kann beispielsweise ein Isolated-Master-Server nicht in einem Verbund mit einem Legacy-Slave-Server (oder umgekehrt) betrieben werden.

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.13 | Datenschutz