簡體   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