2016-05-30 81 views
1

以下是我的样本风暴拓扑,Apache Storm可以处理多少个螺栓?

TopologyBuilder builder = new TopologyBuilder(); 

    builder.setSpout("EventSpout", new TenderEventSpout2(), 1); 

    builder.setBolt("CleanseLoadBolt", new CleanseLoadBolt(), 1).shuffleGrouping("EventSpout"); 

    builder.setBolt("EventGeneratorBolt", new EventGeneratorBolt(), 1).shuffleGrouping("CleanseLoadBolt"); 

    builder.setBolt("Event1Bolt", new Event1Bolt(), 1) 
     .shuffleGrouping("EventGeneratorBolt","stream1"); 

    builder.setBolt("Event2Bolt", new Event2Bolt(), 1) 
     .shuffleGrouping("EventGeneratorBolt","stream2"); 

    builder.setBolt("Event3Bolt", new Event3Bolt(), 1) 
     .shuffleGrouping("EventGeneratorBolt","stream3"); 

    builder.setBolt("Rule1Bolt", new Rule1Bolt(), 1) 
     .shuffleGrouping("Event1Bolt","stream1") 
     .shuffleGrouping("Event3Bolt","stream1"); 

    builder.setBolt("Rule2Bolt", new Rule2Bolt(), 1) 
     .shuffleGrouping("Event1Bolt","stream2") 
     .shuffleGrouping("Event2Bolt","stream2"); 

    builder.setBolt("DBBolt", new DBBolt(), 1) 
     .shuffleGrouping("Rule1Bolt") 
     .shuffleGrouping("Rule2Bolt");//.shuffleGrouping("EventProcessorBolt"); 

    return builder.createTopology();` 

目前,我有3个事件螺栓和2个规则螺栓。但根据我的要求,事件和规则也可能超过20。这是设计这样的系统的好方法吗?或者有没有更好的方法来设计风暴?

+0

风暴可以很容易地处理这个数量的螺栓。它被部署在拥有数百个节点的大型生产集群中。 –

+1

此演示文稿有点旧,但有很好的信息http://www.slideshare.net/ptgoetz/scaling-apache-storm-strata-hadoopworld-2014 – YaRiK

回答

1

CakeLabs目前我们正在执行40种螺栓的Storm类型,它在生产中运行超过1年半。 但性能将取决于风暴簇的大小。 如果您部署40个螺栓群集,则需要4个节点的风暴群集才能获得最佳性能。

40个螺栓 - > 80个执行器 - > 8个工人 - > 4个服务器