繁体   English   中英

Apache Storm-Spout / Bolt崩溃且延迟高

[英]Apache Storm - Spout/Bolt crashing with high latency

在将Storm 1.1.0与我的拓扑一起使用时,我遇到了一个问题,即当拓扑具有高延迟的Bolt时,Storm重新计划或让Bolts和Spouts崩溃。

现在,我创建了LatencyTest-Topology用于测试和解决此问题。

我有一个Spout,它发出随机值:

public void nextTuple() {
    outputCollector.emit(new Values(Math.random()));
}

我有一个Bolt,可以接收这些值并在特定时间睡眠。

public void execute(Tuple tuple) {
    double input = tuple.getDouble(0);
    try {
        Thread.sleep(this.latencyMS);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    outputCollector.ack(tuple);
}

因此,如果我将latencyMS设置为10,我可以看到,Storm在3分钟内“正常”工作(在Bolt中仅2000个被确认的元组)。 然后,Bolts的延迟从60ms变为60-100ms,而不是10ms,Storm开始“重新分配”(登录Nimbus)执行器。 然后,UI中的所有统计信息都将变为0。

图1:无崩溃和2000元组具有高延迟

图2:UI中没有显示任何信息

由于我正在使用实际拓扑的Spout中的文件,因此重新打开这些文件是不可接受的。

我在storm.yaml和“ config.setMaxSpoutPending(200);”中处理了一些超时值。 选项,但似乎没有任何效果。 我为此测试使用了3节点Zookeeper群集和5节点风暴群集。

您是否有解决此问题的想法? 即使延迟非常高,我也需要Storm继续。

MaxSpoutPending不是超时配置,您应该配置的是topology.message.timeout

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM