2016-04-11 7 views
1

したがって、入力がキューのTweet文書であるフレームワークがあります。私のトポロジーはそれを読んで、3種類の異なる外部 APIをヒットする必要があります。I/Oタスクのための最高のトポロジー設計パターン

私は、前進する前に3つすべてが完了していることを確認する方法が必要です。私はBatchBoltが良い解決策だとは思わないでしょうか?誰でもこれを助けることができますか?

編集/明確化

3本のAPIのヒットは、結果を返す必要があります。文書が次のboltに渡される前に、これらの回答を処理する必要があります。

答えて

0

私はあなたのことを正しく理解しています。あなたはカフカの噴出口のメッセージを持っています。また、各メッセージは3つの異なるシステムで配信する必要があります。 これは簡単にトポロジを構成することができます。

TopologyBuilder topologyBuilder = new TopologyBuilder(); 
topologyBuilder.setSpout("Generator", spout, 1); 
topologyBuilder.setBolt("External1", bolt1, 1).localOrShuffleGrouping("Generator"); 
topologyBuilder.setBolt("External2", bolt2, 1).localOrShuffleGrouping("Generator"); 
topologyBuilder.setBolt("External3", bolt3, 1).localOrShuffleGrouping("Generator"); 

この簡単な例では、3つの異なるボルトが1カフカのスパウトに接続されています。スパウトがメッセージを発する時、それは同時に3つのボルト全てに行きます。もしボルトの1つがタプルを覚えていなければ、それは失敗し、これらすべてのボルトに再入されます。

+0

Aah、no。それらのすべては、外部APIにヒットし、次のボルトに放出される前に結果を返す必要があります。 – SarthakDev

+0

これら3つのAPIを順番に呼び出す必要がありますか? – f1sherox

+0

逐次的ではありませんが、次のステップに進む前に3つすべての結果が必要です。 – SarthakDev

関連する問題