Da der Integrationsmarkt immer weiter reift, besteht eine ständige Nachfrage nach Unterstützung und Verarbeitung komplexerer Daten- und Prozessflüsse. Wenn Anwendungen große Datenmengen verarbeiten, gehen ihnen oft die Ressourcen aus und sie reagieren nicht mehr, was die Benutzer verwirrt und unzufrieden macht. Die Messung von Ressourcen und die Benachrichtigung von Benutzern mit entsprechenden Meldungen gehören zu den wichtigsten Faktoren einer idealen Software. In der Version Winter 2016 der SnapLogic Elastic Integration Platform haben wir das Konzept der Pipeline-Warteschlange eingeführt, mit dem Benutzer Schwellenwerte für ihre Snaplexes definieren können. Wenn die Schwellenwerte erreicht sind, werden alle weiteren Anfragen in eine Warteschlange gestellt, bis die nächsten Ressourcen verfügbar sind.
Wie legt man Schwellenwerte für Snaplexe fest?
SnapLogic-Pipelines werden in einem Container namens Snaplex ausgeführt. Die Pipelines bestehen aus Snaps, und jeder Snap verbraucht Speicher in einem Snaplex. Sobald der gesamte Speicher in einem Snaplex verbraucht ist, wird er überlastet und erreicht seinen Schwellenwert.
Da Snaps den größten Teil des Snaplex-Speichers verbrauchen, sind sie ein wichtiger Faktor bei der Bestimmung des Snaplex-Schwellenwerts. Der Benutzer kann den Schwellenwert für Snaplex entweder durch die Anzahl der Snaps, die er zu einem bestimmten Zeitpunkt verarbeiten kann, oder durch seine gesamte Speichernutzung festlegen. Sobald der Snaplex seine Schwellenwerte erreicht hat, werden keine Pipeline-Anfragen mehr bearbeitet, bis die Ressourcen wieder freigegeben und verfügbar sind. All diese abgelehnten Pipelines werden im SnapLogic-Dashboard als "in der Warteschlange" markiert, um die Benutzer darauf hinzuweisen, dass ihre Snaplexe überlastet sind.
Nachstehend sind die Werte aufgeführt, die die Snaplex-Schwellenwerte definieren. Beachten Sie, dass sich das Wort "Slots" hier auf die Anzahl der Snaps bezieht. Ich werde jeden dieser Werte in diesem Blog näher erläutern.
- Maximale Steckplätze
- Reservierter Steckplatz %
- Maximaler Speicherplatz %.
Maximale Slots: Die maximale Anzahl von Snaps, die jeder Knoten in einem Snaplex zu einem bestimmten Zeitpunkt verarbeiten kann. Lassen Sie mich die Details anhand von Beispielen näher erläutern. Die beiden Beispiele, die ich erstellt habe, sind:
- Snaplex-Schwellenwerte nicht erfüllt und akzeptiert die Pipeline-Anforderung
- Snaplex erreicht seine Schwellenwerte und nachfolgende Pipeline-Anforderungen werden in eine Warteschlange gestellt
In meinen Beispielen bin ich davon ausgegangen, dass bereits eine bestimmte Anzahl von Pipelines auf dem Snaplex läuft. Jeder Snap in der Pipeline verbraucht einen Steckplatz im Speicher. Daneben gibt es aktive Threads, die grundlegende Snaplex-Operationen ausführen und ebenfalls Snaplex-Speicher verbrauchen. Ich habe sowohl Snaps als auch aktive Threads in der Kategorie " verbrauchte Snaps " berücksichtigt.
Nachstehend ist die Verteilung des Speichers dargestellt:
- Maximale Steckplätze: 1000
- Verbrauchte Slots (aktive Threads + laufende Pipelines): 500
- Verfügbare Steckplätze (maximale Steckplätze + verbrauchte Snaps): 500
Beispiel 1: Der Snaplex hat seine Schwellenwerte nicht erreicht und nimmt Pipeline-Anfragen an.
In diesem Beispiel erstelle ich eine Pipeline mit, sagen wir, 300 Snaps und plane ihre Ausführung gegen diesen Snaplex, indem ich eine Aufgabe erstelle. Wenn diese Aufgabe geplant wird, prüft der Snaplex die verfügbaren Ressourcen, die in diesem Fall 500 sind. Da 500 Slots verfügbar sind, akzeptiert der Snaplex diese Anfrage und verarbeitet sie. Alle weiteren Anfragen werden jedoch nicht angenommen und in eine Warteschlange gestellt. Auf diese Details werde ich im nächsten Beispiel näher eingehen.
Beispiel 2: Der Snaplex erreicht seinen Schwellenwert und die Pipelines werden in die Warteschlange gestellt.
In diesem Beispiel habe ich eine große Pipeline mit 800 Snaps erstellt und ihre Ausführung geplant. Wenn diese Anfrage an den Snaplex geht, prüft er die verfügbaren Slots, die in diesem Fall 500 sind. Offensichtlich ist die Anfrage viel größer als die Anzahl der Slots, die der Snaplex zuweisen kann, so dass er sie ablehnt und in eine Warteschlange schiebt. Sobald der Snaplex die Verarbeitung der bestehenden Pipelines abgeschlossen hat, stellt er seine Ressourcen zur Verfügung und verarbeitet die nächste Anfrage, die in der Warteschlange wartet. Hier sehen Sie eine Anzeige der Pipelines in der Warteschlange im Dashboard:
Reservierter Slot %: Der Prozentsatz der maximalen Slots, die für die manuelle Ausführung von Pipelines zugewiesen wurden. Diese Slots sind nur für die manuelle Ausführung von Pipelines reserviert. Wenn geplante Pipelines alle verfügbaren Slots verbrauchen, stellen die reservierten Slots sicher, dass die Pipelines weiterhin manuell ausgeführt werden können.
- Maximale Steckplätze: 1000
- Reservierter Steckplatz %: 10 = 100
- Verbrauchte Slots: 900
- Verfügbare Slots (maximale Slots = reservierte Slots % + verbrauchte Slots): 0
Betrachten wir dasselbe Beispiel wie oben und nehmen wir an, dass alle verfügbaren Slots verbraucht sind. Alle weiteren geplanten Pipelines werden in eine Warteschlange gestellt, da die Slots alle belegt sind. Da reservierten Slots jedoch ein Wert zugewiesen wird, kann ich immer noch Pipelines aus dem SnapLogic Designer ausführen, die nicht mehr als 100 Snaps enthalten. Wenn ich jedoch Pipelines mit mehr als 100 Snaps ausführe, werden sie abgelehnt und in eine Warteschlange gestellt, und dem Benutzer wird eine Fehlermeldung (siehe unten) angezeigt:
Prozentsatz des Speichers: Ein weiterer wichtiger Faktor zur Messung der Snaplex-Schwelle ist der Snaplex-Speicher. Wenn ich den Prozentsatz des Arbeitsspeichers auf z. B. 75 % festlege, werden Pipeline-Anforderungen akzeptiert, bis 75 % des Snaplex-Speichers verbraucht sind. Sobald dieser Schwellenwert erreicht ist, werden alle anderen Anfragen in eine Warteschlange gestellt und später verarbeitet, sobald der Speicher wieder verfügbar ist.
Zusammenfassung
Zusammenfassend lässt sich sagen, dass die Snaplex-Schwellenwerte benutzerdefiniert sind. Wenn ein Snaplex seinen Schwellenwert erreicht, werden Pipeline-Anforderungen abgelehnt und im Dashboard als in der Warteschlange stehend markiert. Um eine Überlastung von Snaplex zu vermeiden, können Benutzer ihre geplanten Aufgaben anpassen oder weitere Knoten zu ihren Snaplexen hinzufügen.