Ich habe eine Storm-Topologie, die viele Spouts und Bolts erzeugt. Sie werden offensichtlich auf verschiedenen Systemen/Knoten verteilt sein, die ihre eigenen JVMs haben.Wie können Variablen gespeichert werden, auf die alle Spouts und Bolts in Apache Storm zugreifen können?
Ich verstehe, dass Storm automatisch die Netzwerkkommunikation verwaltet, so dass die Tupel, die von der Tülle ausgegeben werden, die Schrauben auf einer anderen JVM erreichen.
Was ich nicht verstehe, ist, wie ich einige Variablen beibehalten kann, die den Überblick behalten können.
Ich möchte eine Variable, die die Anzahl der Tupel zählt, die von allen Instanzen von Bolt-A
verarbeitet wurden. Eine weitere Variable zum Zählen für Bolt-B
und so weiter.
Ich brauche auch eine Variable, die als Flag fungiert, so dass ich weiß, wenn die Spouts keine Daten mehr zu emittieren haben, damit die Bolts anfangen können, in SQL zu schreiben.
Ich überlegte, Redis
zu verwenden, aber wollte wissen, ob das der beste Weg ist oder gibt es einen anderen Weg? Irgendwelche Codebeispiele überall verfügbar? Ich habe Google-gesucht, konnte aber nicht viele nützliche Informationen finden.
Ok, aber in diesem Fall gibt es keine Möglichkeit für mich zu wissen, wie viele Tupel genug sind. Wie in der Frage erwähnt, brauche ich eine Flag-Variable, die die Schrauben prüfen können. – Nav