Einrichten der verteilten Ausführung

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Verteilte Ausführung >

Einrichten der verteilten Ausführung

Das Herzstück von verteilten Ausführungen bildet das Konzept von Ausführungswarteschlangen.

 

Eine Ausführungswarteschlange dient zum Verarbeiten von Aufträgen. Sie steuert, wie Auftragsinstanzen ausgeführt werden. Jeder Auftrag wird einer Ausführungszielwarteschlange zugewiesen, über die er ausgeführt wird. Sie können einen Auftrag bei der Konfiguration einer Ausführungswarteschlange zuweisen. Dieser wird dann zur Laufzeit an diese Ausführungswarteschlange gesendet. Mit der Warteschlange wird gesteuert, wie viele Auftragsinstanzen (von allen der Warteschlange zugewiesenen Aufträgen) gleichzeitig ausgeführt werden können. Außerdem können der Zeitabstand zwischen den Ausführungen sowie andere Einstellungen festgelegt werden. Warteschlangen können lokal für den Auftrag oder für mehrere Aufträge definiert werden. Wenn mehrere Aufträge derselben Ausführungswarteschlange zugewiesen werden, wird dafür bei der Ausführung diese gemeinsame Warteschlange verwendet.

 

Mit Hilfe gemeinsamer Warteschlangen können Sie die Server-Auslastung entweder auf einem einzigen FlowForce-Rechner oder bei Ausführung mehrerer FlowForce Server-Instanzen als Cluster steuern. Die Konfiguration des Lastenausgleichs erfolgt in mehreren Schritten:

 

1.Erstellen Sie, ähnlich wie beim Erstellen anderer FlowForce-Konfigurationsdaten wie z.B. Anmeldeinformationen oder Aufträgen, zuerst von einer eigenen Seite aus eine Warteschlange.
2.Definieren Sie für jede Warteschlange ihre Verarbeitungseinstellungen. So können Sie z.B. festlegen, dass eine Warteschlange nur auf dem Master, nur auf Worker-Rechnern oder auf beiden ausgeführt wird. Auch Fallback-Kriterien können definiert werden. So kann eine Warteschlange z.B. laut Konfiguration standardmäßig auf dem Master und allen seinen Worker-Rechnern ausgeführt werden. Wenn aber alle Worker ausfallen, wird die Warteschlange wieder nur vom Master verarbeitet.
3.Bearbeiten Sie die einzelnen Auftragskonfigurationen und weisen Sie den Auftrag der zuvor erstellten benutzerdefinierten Warteschlange zu.

 

Erstellen von Warteschlangen

Für Warteschlangen gelten hinsichtlich sicheren Zugriffs dieselben Einstellungen wie für andere FlowForce Server-Konfigurationsobjekte. Um Warteschlangen erstellen zu können, muss ein Benutzer das Recht zur Definition von Warteschlangen haben, siehe auch Funktionsweise von Rechten. Außerdem können Benutzer Warteschlangen nur dann anzeigen oder diesen Aufträge zuweisen, wenn sie die entsprechenden Container-Berechtigungen haben (dies ist nicht dasselbe wie Rechte), siehe auch Funktionsweise von Berechtigungen. Standardmäßig erhält jeder authentifizierte Benutzer die Berechtigung "Warteschlange - verwenden", d.h. er kann Aufträge einer Warteschlange zuweisen. Um den Zugriff auf Warteschlangen einzuschränken, navigieren Sie zum Container, in dem die Warteschlange definiert wurde und ändern Sie die Berechtigung des Containers für die Rolle authenticated in "Warteschlange - Kein Zugriff". Weisen Sie als nächstes allen Rollen oder Benutzern, die Sie benötigen, die Berechtigung "Warteschlange - verwenden" zu. Nähere Informationen dazu finden Sie unter Einschränken des Zugriffs auf den Container /public.

 

 

So erstellen Sie eine Warteschlange:

1.Klicken Sie auf Konfiguration und navigieren Sie dann zum Container, in dem die Warteschlange erstellt werden soll.
2.Klicken Sie auf Erstellen und anschließend auf Warteschlange erstellen.

ff_create_queue

3.Geben Sie einen Namen für die Warteschlange und optional eine Beschreibung ein. Informationen zu weiteren Einstellungen finden Sie weiter unten unter "Warteschlangeneinstellungen"
4.Klicken Sie auf Speichern.

 

Warteschlangeneinstellungen

Im Folgenden finden Sie die Einstellungen, die in einer Warteschlange konfiguriert werden können:

 

Ausführen auf

Gibt an, wie alle Auftragsinstanzen aus dieser Warteschlange ausgeführt werden sollen:

 

Master oder beliebigem Worker - Auftragsinstanzen, die Teil dieser Warteschlange bilden, werden je nach Verfügbarkeit der Server-Kerne wahllos auf dem Master- oder dem Worker-Rechner ausgeführt.
nur Master - Auftragsinstanzen werden nur auf dem Master-Rechner ausgeführt.
nur beliebigem Worker - Auftragsinstanzen werden auf jedem beliebigen verfügbaren Worker, jedoch niemals auf dem Master-Rechner ausgeführt.

Mindestintervall zwischen den Ausführungen

Eine Ausführungs-Warteschlange hat Ausführungs-Slots, wobei die Anzahl der verfügbaren Slots von der Einstellung: "Maximale Anzahl der parallelen Ausführungen" multipliziert mit der gemäß der gerade aktiven Regel zugewiesenen Anzahl der Worker-Rechner abhängig ist. Mit jedem Slot werden Auftragsinstanzen der Reihe nach ausgeführt.

 

Mit der Einstellung "Mindestintervall zwischen den Ausführungen" wird ein Slot für kurze Zeit als besetzt markiert, nachdem eine Auftragsinstanz fertig verarbeitet wurde, damit nicht sofort mit der nächsten Auftragsinstanz begonnen wird. Dadurch wird der maximale Durchsatz für diese Ausführungswarteschlange verringert, wodurch die CPU Zeit für andere Ausführungswarteschlangen und Prozesse auf demselben Rechner erhält.

Maximale Anzahl der parallelen Ausführungen

Mit dieser Option definieren Sie, wie oft derselbe Auftrag auf dem Server parallel ausgeführt werden darf.

 

Die parallele Verarbeitung hängt von der Anzahl der für FlowForce Server verfügbaren Server-Kerne ab. Wenn Sie z.B. diesen Wert auf 12 setzen und nur zwei Server-Kerne lizenziert sind, wird angezeigt, dass 12 Aufträge parallel ausgeführt werden, in Wirklichkeit werden jedoch immer nur zwei Aufträge auf einmal ausgeführt.

 

Durch Klicken auf die Schaltfläche add können Sie mehrere Gruppen von Warteschlangeneinstellungen mit unterschiedlichen Verarbeitungsvorgaben definieren. Um die Priorität einer bestimmten Einstellungsgruppe (einer so genannten "Regel") zu ändern, klicken Sie auf die Schaltflächen Nach oben up_arrow oder Nach unten down_arrow. So können Sie z.B. eine Regel für den Fall definieren, dass nur der Master zur Verfügung steht, und eine andere für den Fall, dass sowohl der Master als auch Worker-Rechner zur Verfügung stehen. Auf diese Art können Sie, je nach Zustand des Clusters zu einem bestimmten Zeitpunkt, einen Fallback-Mechanismus für die Warteschlange definieren. FlowForce überwacht bei der Verarbeitung von Warteschlangen ständig den Zustand des Clusters und "weiß", ob und wann ein Worker nicht verfügbar ist. Wenn Sie daher mehrere Warteschlangeneinstellungsregeln definiert haben, wertet FlowForce diese in der definierten Reihenfolge von oben nach unten aus und wählt die erste Regel aus, der gemäß der Einstellung "Ausführen" mindestens ein Cluster-Mitglied zugewiesen wurde.

 

Nehmen wir z.B. eine Konfiguration, bei der der Cluster aus einem Master- und vier Worker-Rechnern besteht. Es wurden dafür die folgenden Warteschlangeneinstellungen definiert:

ff_queue_settings

FlowForce würde die Warteschlange bei der oben gezeigten Konfiguration je nach aktuellem Status des Clusters folgendermaßen verarbeiten:

 

Wenn alle Worker zur Verfügung stehen, trifft die oberste Regel zu und wird angewendet. In diesem Fall können bis zu 16 Auftragsinstanzen (4 Instanzen pro Worker) gleichzeitig ausgeführt werden. Das Mindestintervall zwischen den Ausführungen beträgt 0 Sekunden.
Wenn nur drei Worker zur Verfügung stehen, trifft weiterhin die oberste Regel zu. In diesem Fall können bis zu 12 Auftragsinstanzen gleichzeitig ausgeführt werden. Das Mindestintervall zwischen den Ausführungen beträgt 0 Sekunden.
Wenn keine Worker zur Verfügung stehen, trifft die zweite Regel zu und wird angewendet. In diesem Fall kann maximal 1 Instanz auf einmal ausgeführt werden und das Mindestintervall zwischen den Ausführungen beträgt 5 Sekunden.

 

Bei dieser Konfigurationsart kann der Auftrag auch dann ausgeführt werden, wenn keine Worker zur Verfügung stehen. Beachten Sie, dass die Regel "nur Master" etwas strenger ist (nur 1 Instanz und 5 Sekunden Ausführungsintervall) , damit dem Master nicht zu viel Verarbeitungsleistung weggenommen wird, wenn alle Worker ausfallen.

 

Zuweisen von Aufträgen zu Warteschlangen

Nachdem Sie die Warteschlange konfiguriert haben, müssen als nächstes die Konfigurationen der einzelnen Aufträge, die dieser Warteschlange zugewiesen werden sollen, bearbeitet werden. Die Warteschlangeneinstellungen befinden sich auf der Auftragskonfigurationsseite in der Gruppe "Warteschlangeneinstellungen":

ff_assign_queue

Anmerkung:Wenn Sie die Option Lokale Warteschlange definieren auswählen, weist FlowForce Server Instanzen dieses Auftrags zur Auftragslaufzeit einer Standardwarteschlange mit den lokalen von Ihnen definierten Einstellungen zu, siehe auch Definieren von Warteschlangeneinstellungen. Lokale Warteschlange unterstützen die verteilte Verarbeitung nicht. Die Warteschlange muss (auftragsextern) als eigene Warteschlange erstellt werden, damit sie für die verteilte Verarbeitung verwendet werden kann.

© 2019 Altova GmbH