package backtype.storm.spout;
import backtype.storm.Config;
import backtype.storm.LocalCluster;
import backtype.storm.scheme.StringScheme;
import backtype.storm.task.OutputCollector;
import backtype.storm.task.TopologyContext;
import backtype.storm.topology.OutputFieldsDeclarer;
import backtype.storm.topology.TopologyBuilder;
import backtype.storm.topology.base.BaseRichBolt;
import backtype.storm.tuple.Tuple;
import java.util.Map;
public class TestTopology {
public static class FailEveryOther extends BaseRichBolt {
OutputCollector _collector;
int i=0;
@Override
public void prepare(Map map, TopologyContext tc, OutputCollector collector) {
_collector = collector;
}
@Override
public void execute(Tuple tuple) {
i++;
if(i%2==0) {
_collector.fail(tuple);
} else {
_collector.ack(tuple);
}
}
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
}
}
public static void main(String[] args) throws Exception {
TopologyBuilder builder = new TopologyBuilder();
KestrelThriftSpout spout = new KestrelThriftSpout("localhost", 2229, "test", new StringScheme());
builder.setSpout("spout", spout).setDebug(true);
builder.setBolt("bolt", new FailEveryOther())
.shuffleGrouping("spout");
LocalCluster cluster = new LocalCluster();
Config conf = new Config();
cluster.submitTopology("test", conf, builder.createTopology());
Thread.sleep(600000);
}
}