Ответ 1
Вы можете использовать разные потоки, если ваш случай нуждается в этом, он не очень раскалывается, но у вас будет много гибкости, вы можете использовать его для маршрутизации на основе контента с помощью болта, например:
Вы объявляете поток в болте:
@Override
public void declareOutputFields(final OutputFieldsDeclarer outputFieldsDeclarer) {
outputFieldsDeclarer.declareStream("stream1", new Fields("field1"));
outputFieldsDeclarer.declareStream("stream2", new Fields("field1"));
}
Вы выбрасываете болт по выбранному потоку:
collector.emit("stream1", new Values("field1Value"));
Вы слушаете правильный поток через топологию
builder.setBolt("myBolt1", new MyBolt1()).shuffleGrouping("boltWithStreams", "stream1");
builder.setBolt("myBolt2", new MyBolt2()).shuffleGrouping("boltWithStreams", "stream2");