风暴中的背压

w8rqjzmb  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(261)

在我们的Storm1.0.2应用程序中,我们面临内存不足的异常。在调试时,我们看到kafka喷口向螺栓发出了太多的消息。螺栓的工作能力几乎为4.0。那么,有没有一种方法,使反压力在风暴,使喷口排放取决于螺栓的能力。尝试将topology.backpressure.enable启用为true,但出现此问题https://issues.apache.org/jira/browse/storm-1949. 我们正在使用kafkaspout的开箱即用实现,并为我们的螺栓扩展baserichbolt。我们的dag是线性的。

pw136qt2

pw136qt21#

您可以通过在拓扑配置中设置maxpoutpending值来处理kafkaspout的背压,

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

StormSubmitter.submitTopology("testtopology", config, builder.createTopology());

maxspoutpending是在给定时间拓扑中可以挂起确认的元组数。设置此属性,将通知kafkaspout不要再使用来自kafka的任何数据,除非未确认的元组计数小于maxpoutpending值。

相关问题