Apache 风暴中的背压

Apache 风暴中的背压,apache,apache-storm,Apache,Apache Storm,在storm 1.0.2应用程序中,我们面临内存不足的异常。调试时,我们看到卡夫卡喷口向螺栓发出了太多的消息。螺栓以接近4.0的容量运行。那么,是否有一种方法可以在暴风雨中实现背压,从而使喷口根据螺栓的容量排放。尝试将topology.backpressure.enable启用为true,但出现此问题。我们正在使用KafkaSpout的开箱即用实现,并为我们的螺栓扩展BaseRichBolt。我们的DAG是线性的 您可以通过在拓扑配置中设置maxSpoutPending值来处理卡夫卡输出的背压

在storm 1.0.2应用程序中,我们面临内存不足的异常。调试时,我们看到卡夫卡喷口向螺栓发出了太多的消息。螺栓以接近4.0的容量运行。那么,是否有一种方法可以在暴风雨中实现背压,从而使喷口根据螺栓的容量排放。尝试将topology.backpressure.enable启用为true,但出现此问题。我们正在使用KafkaSpout的开箱即用实现,并为我们的螺栓扩展BaseRichBolt。我们的DAG是线性的

您可以通过在拓扑配置中设置maxSpoutPending值来处理卡夫卡输出的背压

Config config = new Config();
config.setMaxSpoutPending(200); 
config.setMessageTimeoutSecs(100);

StormSubmitter.submitTopology("testtopology", config, builder.createTopology());
maxSpoutPending是在给定时间拓扑中可以挂起确认的元组数。设置此属性,将通知KafkaSpout不要使用来自Kafka的任何更多数据,除非未确认的元组计数小于maxSpoutPending值