Wir haben eine Sturm Topologie, in der wir einen Auslauf und zwei Schrauben konfiguriert haben. Spout fragt kontinuierlich Daten aus der Datenbank ab und sendet Tupel, die für eine Verarbeitung zuerst an die Datenbank gesendet werden. Die erste Schraube verarbeitet und sendet Tupel an die zweite Schraube, die den Web-Service eines Dritten aufruft und Daten sendet. Also, was nach einiger Zeit passiert, letzte Schraube bekommt keine Tupel und wenn wir die Topologie neu starten, funktioniert es gut. Nur letzter Bolzen ist hier problematisch. Andere Tülle und erster Bolzen laufen gut, und ich benutze kein Ackerrahmen. Ich habe in diesem Fall nur einen Arbeiter konfiguriert ".Apache Storm Bolt Aufgabe erhält nach einiger Zeit keine Nachricht
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("messageListenrSpout", new MessageListenerSpout(), 1);
builder.setBolt("processorBolt", new ProcessorBolt(), 20).shuffleGrouping("messageListenrSpout");
builder.setBolt("notifierBolt", new NotifierBolt(),40).shuffleGrouping("processorBolt");
Config conf = new Config();
conf.put(Config.TOPOLOGY_SLEEP_SPOUT_WAIT_STRATEGY_TIME_MS, 10000);
//conf.setMessageTimeoutSecs(600);
conf.setDebug(true);
StormSubmitter.submitTopology(TOPOLOGY, conf, builder.createTopology());
Hallo Chris, ich benutze kein Ackerrahmen. Will storm noch die Nachricht auslaufen ?? Wenn Nachrichten eine Zeitüberschreitung haben, können wir die Protokolle überprüfen. Und ich habe einen Parallelismushinweis zu 30 der letzten Schraube gegeben. –