【发布时间】:2015-11-01 22:26:30
【问题描述】:
我们有一个风暴拓扑,其中我们配置了一个 spout 和两个 bolt。 Spout 不断地从 DB 中查询数据并将它的元组发送到第一个 Bolt 进行一些处理。第一个bolt进行一些处理并将元组发送到第二个bolt,第二个bolt调用第三方Web服务并发送数据。所以,一段时间后发生了什么,最后一个螺栓没有得到任何元组,如果我们重新启动拓扑,它工作正常。这里只有最后一个螺栓有问题。其他喷口和第一个螺栓运行良好,我没有使用 acking 框架。在这种情况下,我只配置了一名工作人员。
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());
【问题讨论】:
标签: java apache-storm