layline.io Blog
Umgang mit Datendruck in nachrichtenbasierten Systemen.
Wie geht man mit dem Datendruck in nachrichtengesteuerten Non-Stop-Lösungen um und gewährleistet eine unterbrechungsfreie Betriebszeit unter Last.
Reading time: 4 min.
Was ist Datendruck?
Man hört viel über Datendruck, wenn es um Non-Stop-Systeme geht. Was ist das und warum ist er so wichtig?
Druck im physikalischen Sinne beschreibt ein Ungleichgewicht zwischen Gas oder Flüssigkeit zwischen zwei begrenzten Räumen. Es geht in beide Richtungen, bis ein Gleichgewicht erreicht ist. Wenn man dies steuern will, setzt man normalerweise ein Ventil zwischen die beiden.
In Datenverarbeitungssystemen beschreibt Datendruck oder Stromaufwärtsdruck die Menge an Daten, die zur Verarbeitung bereitsteht. Bei dateibasierten (Stapel-)Lösungen beschreibt dies einfach die Menge der Dateien, die auf ihre Verarbeitung warten (asynchron). Die Verarbeitungsgeschwindigkeit richtet sich ausschließlich nach der Verarbeitungsleistung der nachgelagerten Akteure und ist bedarfsabhängig. Der Datendruck bei der Stapelverarbeitung stellt in der Regel keine Gefahr der Systemüberlastung dar, da er implizit ist. Das Stapelverarbeitungssystem wird immer nur so viel verarbeiten, wie es kann.
In modernen, nachrichtengesteuerten Echtzeit-Verarbeitungsumgebungen sieht die Sache jedoch ganz anders aus, wo der Datendruck explizit ist, weil die Daten verarbeitet werden müssen, sobald sie ankommen.
Bedeutung des Gegendrucks in Non-Stop-Echtzeitsystemen
Nachrichtengesteuerte Anwendungsfälle erfordern in der Regel, dass die Daten jederzeit in Echtzeit verarbeitet werden müssen. Daher müssen Systeme in der Lage sein, elastisch zu skalieren, um Lastspitzen zu bewältigen oder nicht benötigte Ressourcen in Zeiten geringen Datendrucks freizugeben.
Es gibt unzählige Beispiele für Architekturen, die bei der Bewältigung großer Datenmengen verstopfen. Dies führt oft zu einem Teufelskreis, der in der Regel zum Herzstillstand einer solchen Architektur führt. Das Hauptproblem ist das Fehlen eines negativen Nachfragesignals (oder eines Signals für einen hohen Datenrückstau) für die vorgelagerten Akteure, auf das sie reagieren können. Gäbe es ein solches Signal, könnten geeignete Maßnahmen ergriffen werden.
Solche Maßnahmen könnten sein:
- Verlangsamung der Verarbeitung des gesamten Datenstroms, oder
- Bereitstellung von mehr Rechenleistung, um den zusätzlichen Druck zu bewältigen
Sobald der Druck auf den Datenstrom nachlässt, können die Gegenmaßnahmen wieder rückgängig gemacht werden. Es können wieder mehr Daten geliefert werden, oder die zuvor aktivierte Verarbeitungsleistung kann außer Betrieb genommen werden.
Zusammengefasst haben wir also:
- ein Datensignal oder Aufwärtsdruck, das signalisiert, dass Daten für die Verarbeitung verfügbar sind, und wir haben
- ein Nachfragesignal oder Rückdruck, das signalisiert, wie ausgelastet die nachgelagerten Akteure sind und ob der Druck von den vorgelagerten Akteuren auf die nachgelagerten Akteure abgewälzt werden kann.
Mit Hilfe dieser Signale ist das System in der Lage, ein Gleichgewicht zwischen allen Beteiligten auszuhandeln, das sicherstellt, dass die Verarbeitung nie zum Stillstand kommt, sondern sich eher verlangsamt (oder automatisch zusätzliche Kapazitäten zur Verfügung gestellt werden). Dieses Problem ist gut erkannt und im Reactive Manifesto (https://www.reactivemanifesto.org) definiert, das fordert, dass Systeme nachrichtengesteuert, elastisch und widerstandsfähig sein müssen und somit auf die Last reagieren können. Systeme, die diese Anforderungen erfüllen, werden als "Reactive" bezeichnet.
Wie layline.io damit umgeht
Es klingt, als wäre die Lösung für das Problem des Gegendrucks einfach. Tatsächlich ist sie aber schwer zu lösen, da alle Teilnehmer an diesem Tanz sich des Datendrucks bewusst sein müssen, und zwar in beide Richtungen. Reaktives Stream-Management hat dieses Problem gelöst, weshalb layline.io es unter der Haube voll ausnutzt. Es ist jedoch nichts für schwache Nerven und hat eine steile Lern- und Erfahrungskurve zur Folge. layline.io schützt seine Nutzer vor dieser Komplexität durch eine einfach zu bedienende Plattform, die alle für die Produktion notwendigen Features wie UI-gesteuerte Low-Code-Konfigurierbarkeit, One-Click Deployment, Monitoring und vieles mehr bietet.
Resources
- Reactive Manifesto
- Erfahren Sie hier mehr über layline.io.
- Kontaktieren Sie uns hello@layline.io.