我尝试在ApacheStorm中使用并行概念,我想知道如何通过一个拓扑提交多个喷口。下面是我的单拓扑提交代码
TwitterTopologyCreator topology = new TwitterTopologyCreator(); topology.createTopology(topologyName, clientName);
lyr7nygr1#
有两个喷口可以有不同的配置。我张贴一些常用的拓扑配置与2喷口。
public class Test { public static void main(String[] args) throws Exception { /* * * topology with 2 spout (configuration 1) * * spout-1 --> * |--> bolt-1 * spout-2 --> * */ TopologyBuilder configuration1=new TopologyBuilder(); configuration1.setSpout("spout-1", new Spout1()); configuration1.setSpout("spout-2", new Spout2()); configuration1.setBolt("bolt-1", new Bolt1()).shuffleGrouping("spout-1").shuffleGrouping("spout-2"); /* * * topology with 2 spout (configuration 2) * * spout-1 --> bolt-1 * * spout-2 --> bolt-2 * */ TopologyBuilder configuration2=new TopologyBuilder(); configuration2.setSpout("spout-1", new Spout1()); configuration2.setSpout("spout-2", new Spout2()); configuration2.setBolt("bolt-1", new Bolt1()).shuffleGrouping("spout-1"); configuration2.setBolt("bolt-2", new Bolt2()).shuffleGrouping("spout-2"); /* * * topology with 2 spout (configuration 3) * * spout-1 --> bolt-1 --> * |--> bolt-3 * spout-2 --> bolt-2 --> * */ TopologyBuilder configuration3=new TopologyBuilder(); configuration2.setSpout("spout-1", new Spout1()); configuration2.setSpout("spout-2", new Spout2()); configuration2.setBolt("bolt-1", new Bolt1()).shuffleGrouping("spout-1"); configuration2.setBolt("bolt-2", new Bolt2()).shuffleGrouping("spout-2"); configuration2.setBolt("bolt-3", new Bolt3()).shuffleGrouping("bolt-1").shuffleGrouping("bolt-2"); } }
aelbi1ox2#
可以按以下方式在拓扑中使用多个喷口。
TwitterTopologyCreator topology = new TwitterTopologyCreator(); topology.setSpout("kafka-spout1", new KafkaSpout(spoutConf1), 1); topology.setSpout("kafka-spout2", new KafkaSpout(spoutConf2), 1); topology.createTopology(topologyName, clientName);
2条答案
按热度按时间lyr7nygr1#
有两个喷口可以有不同的配置。我张贴一些常用的拓扑配置与2喷口。
aelbi1ox2#
可以按以下方式在拓扑中使用多个喷口。