私のトポロジでStorm 1.1.0を使用しているときに、Stormが再スケジュールしたり、BoltとSpoutsをクラッシュさせたりします。Apache Storm - Spout/Boltクラッシュ(待ち時間が大きい)
ここでは、この問題をテストして再生するためのLatencyTest-Topologyを作成しました。
私は、ランダムな値を放出スパウト、持っている:
public void nextTuple() {
outputCollector.emit(new Values(Math.random()));
}
をそして私は、これらの値をrecievesし、特定の時間のために眠ってボルトを、持っています。
public void execute(Tuple tuple) {
double input = tuple.getDouble(0);
try {
Thread.sleep(this.latencyMS);
} catch (InterruptedException e) {
e.printStackTrace();
}
outputCollector.ack(tuple);
}
私は10にlatencyMSを設定した場合、私が見ることができるので、その嵐は「罰金」作品(ただ2000はボルトでタプルをACKさ)3分間。その後、ボルトの待ち時間は10msではなく60-100msになり、ストームはエグゼクティブを「再割り当て」(Nimbusにログイン)し始めます。そして、UI内のすべての統計は、私は私の本当のトポロジーのスパウト内のファイルで作業しておりますので、これらを再開することは受け入れられない0
Image 1: No Crash and 2000 Tuples acked with high latency
Image 2: Crashed an no information in the UI
しようとしています。
私はstorm.yamlと「config.setMaxSpoutPending(200);」でいくつかのタイムアウト値を使って遊んでいました。しかし、何も効果がないようです。 このテストでは、3ノードのZookeeper Clusterと5 Node Storm Clusterを使用しています。
解決方法や理解方法はありますか? 待ち時間が非常に長い場合でも、私は嵐が必要です。