以下是我的示例 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 个事件 bolt 和 2 个规则 bolt 。但根据我的要求,事件和规则也可能会超过20个。设计这样的系统是一个好方法吗?或者有没有更好的方法在 Storm 中设计这个?
最佳答案
在 CakeLabs目前,我们正在执行带有 40 个 bolt 的 Storm 类型,并已在生产中运行超过 1 年半。 但性能将取决于 Storm 集群的大小。 如果您部署 40 个 Bolt 集群,则需要 4 节点 Storm 集群才能获得最佳性能。
40 个 bolt -> 80 个执行程序 -> 8 个工作人员 -> 4 个服务器
关于java - Apache Storm 可以处理多少个 bolt ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37524037/