2016-07-11 10 views
0

Mein Verständnis von Sturm Bolt execute Methode ist - (vorausgesetzt, es ist nur eine Aufgabe und drei Tupeln)Sorm Bolts Execute-Methode arbeiten

  1. Execute-Methode des Bolzens aufgerufen wird das Bestehen der ersten Tupel
  2. Einmal Die Methode wird beendet und die Execute-Methode der Schraube wird als Übergabe des zweiten Tupels bezeichnet.
  3. Falls die erste Tupel-Ack-Funktion fehlschlägt, wird das erste Tupel in die Warteschlange zurückversetzt. Die Verarbeitung geht weiter mit zweiten und dritten Tupel
  4. Die Execute-Methode wird das erste Tupel vorbei am Ende wieder

mein Verständnis richtig heißt?

Antwort

1

Grundsätzlich ja.

Wenn jedoch das erste Tupel fehlschlägt, wird es nicht in die Warteschlange zurückgestellt, sondern es wird ein Rückruf an Spout.fail(Object msgId) durchgeführt (für alle "Parent-Tupel" des ersten Tupels.) Alle übergeordneten Tupel und damit die genaue Reihenfolge, wann das Tupel an execute() übergeben wird, ist nicht exakt vorhersagbar.

Natürlich muss Ihr Spout ein sogenannter zuverlässiger Spout sein, dh alle Daten müssen zuverlässig so gespeichert werden, dass Es kann alle fehlerhaften Tupel erneut ausgeben.Viele mitgelieferte Tüllen sind zuverlässig

Weitere Informationen finden Sie in der Dokumentation zu Storm: https://storm.apache.org/releases/1.0.1/Guaranteeing-message-processing.html