2016-05-16 15 views
2

Während ich anfange, Streaming-Verarbeitung zu lernen, höre ich die folgenden zwei technische Elemente: Stateful Streaming-Verarbeitung und statusfreie Streaming-Verarbeitung, was sind die Unterschiede zwischen ihnen? Ich habe gehört, dass der Sturm staatenlos ist, während der Sturm-Dreizack statusbehaftet ist, also in der Praxis, wo man den Sturm einsetzt und wo man den Sturm-Dreizack einsetzt?stateful und zustandslose Streaming-Verarbeitung

Antwort

6

Der Unterschied zwischen den beiden ist, auf einer sehr hohen Ebene, in der Art von Operation, die Sie auf ihnen durchführen müssen.

Einige Operationen sind zustandslos, dh Sie verarbeiten jeweils einen Datensatz. Denken Sie an einen Bankangestellten, der nacheinander einen Strom von Kunden verarbeitet. Jeder Kunde ist eine neue Arbeitseinheit, die nicht von der vorherigen abhängig ist.

Eine zustandsbehaftete Operation ist wie die Einstellung eines neuen Mitarbeiters. Sie haben einen Strom von Menschen für Interviews kommen, aber wenn Sie sie anstellen oder nicht, hängt von Ihrem Zustand ab, das heißt, welche Positionen Sie geöffnet haben.

Nehmen wir zum Beispiel an, dass Sie Weblogs verarbeiten. Wenn Sie wissen möchten, wie viele Benutzer eine Seite pro Sekunde anzeigen, ist Ihre Verarbeitung fast zustandslos: jede Sekunde berechnen Sie, wie viele Benutzer pro Seite kamen. Jede neue Sekunde interessiert dich nicht für das Ergebnis der vorherigen Sekunde. Das ist eine zustandslose Operation.

Angenommen, Sie möchten stattdessen eine Prognose berechnen, wie viele Benutzer Sie in der nächsten Sekunde haben werden. Sie möchten die letzten 10 Minuten mitteln, also müssen Sie eine Warteschlange mit den letzten 10 * 60 Sekunden behalten - das ist der Zustand, den Sie für Ihre Verarbeitung behalten müssen, und Sie müssen es jede Sekunde aktualisieren, um am meisten zu behalten die letzten 10 Minuten des Staates. Das ist natürlich eine Stateful Operation. Eine einfachere statusbehaftete Operation zählt nur die Gesamtzahl der Seitenaufrufe seit dem Beginn der Site.

Ein kritischer Unterschied zwischen den beiden Operationen ist, dass wenn der Strom stoppt und Sie das System zurücksetzen, müssen Sie darauf achten, den Zustand zu speichern. Eine zustandslose Operation hat keinen zu speichernden Status, daher ist sie im Allgemeinen einfacher.