Altova FlowForce Server 2024 Advanced Edition

Konfigurieren der verteilten Ausführung

Zur Startseite Zurück Nach oben Weiter

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. Mit der Warteschlange wird gesteuert, wie viele Auftragsinstanzen (von allen der Warteschlange zugewiesenen Aufträgen) gleichzeitig ausgeführt werden können und wie groß der Zeitabstand zwischen den Ausführungen sein soll. Standardmäßig werden die Warteschlangeneinstellungen lokal für den Auftrag vorgenommen, Sie können Warteschlangen jedoch auch als eigenständige, gemeinsam von mehreren Aufträgen verwendete Objekte definieren. Wenn mehrere Aufträge derselben Ausführungswarteschlange zugewiesen werden, wird dafür bei der Ausführung diese gemeinsame Warteschlange verwendet.

 

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.

 

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 einfache 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.

 

Anmerkung:Systemübergreifende Cluster werden nicht unterstützt, d.h.eine Worker-Master-Verbindung zwischen verschiedenen Betriebssystemplattformen (wie z.B. zwischen Linux und Windows) ist nicht möglich.

 

Erstellen von Warteschlangen

So erstellen Sie eine Warteschlange als eigenständiges Objekt:

 

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 allen 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:

 

Warteschlangenname

Geben Sie einen Namen für die Warteschlange ein. Dies ist ein obligatorisches Feld. Es darf nicht mit Leerzeichen beginnen oder enden. Außerdem darf es nur Buchstaben, Ziffern, einzelne Leerzeichen und die Zeichen Unterstrich ("_"), Bindestrich ("-") und Punkt (".") enthalten.

 

Dieses Feld ist nur dann anwendbar, wenn die Warteschlange als Standalone-Warteschlange (nicht lokal) definiert ist.

Warteschlangenbeschreibung

Geben Sie optional eine Beschreibung für das Warteschlangenobjekt ein.

 

Dieses Feld ist nur dann anwendbar, wenn die Warteschlange als Standalone-Warteschlange (nicht lokal) definiert ist.

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 viele Ausführungs-Slots in der Warteschlange zur Verfügung stehen. In jedem Slot werden Auftragsinstanzen der Reihe nach ausgeführt, daher wird mit dieser Einstellung festgelegt, wie viele Instanzen desselben Auftrags in der aktuellen Warteschlange parallel ausgeführt werden können. Beachten Sie jedoch, dass alle von Ihnen für die Parallelausführung zugelassenen Instanzen die verfügbaren Rechnerressourcen in Anspruch nehmen. Eine Erhöhung dieses Werts ist eventuell bei Warteschlangen mit schlanken Aufträgen, in denen keine speicherintensiven I/O-Operationen durchgeführt werden bzw. die nicht viel CPU-Zeit beanspruchen, akzeptabel. Die Standardeinstellung 1 ist die konservativste Einstellung und eignet sich für speicherintensive Aufträge (um sicherzustellen, dass immer nur eine solche speicherintensive Auftragsinstanz gleichzeitig verarbeitet wird).

 

Diese Option hat keine Auswirkung auf die maximale Anzahl der in FlowForce Server zulässigen parallelen HTTP-Requests (wie z.B. Requests von Clients, die als Webservice bereitgestellte Auftrage aufrufen). Nähere Informationen dazu finden Sie unter Umkonfiguration von FlowForce Server Pool Threads.

 

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.

© 2017-2023 Altova GmbH