2017-08-22 21 views
0

に新嵐とちょうど噴出の概念を理解し、どのようにそれらに並列処理を実現するためにします。並列処理が噴出

私はスパウトAが定義されているし、3つのタスクと3つの執行及び1ボルト(ボルトを心配しないでできるようにします)を設定しています。注ぎ口のタスク のそれぞれが専用の作業員が割り当てられていると仮定します。つまり、ストリームを受け取る準備ができている3つのスパウトがあることを意味します。メッセージまたはストリーム(Xなど)がトポロジに入ります。これはSpoutでどのように処理されますか?

a。すべてのスパウトがストリームAを受け取りますか?はいの場合、3つすべてのスパウトが処理し、同じメッセージが複数回処理されますか? b。スパウトがこのストリームを受け取るべきか上記のケースで誰が決定するでしょうか? c。スパウト間の負荷のバランスをとることは可能ですか? d。それはトポロジ内にスパウトが1つだけあるべきですか?

P.S:カフカの注ぎ口と混同しないように、これは一般的な注ぎ口で考えてみましょう。

答えて

1

ストームは、あなたの質問は基本的に注ぎ口コードの実装によって決定されているフレームだけです。だから、悲しいことに、 "一般的な吐き気"を考える方法はありません。私たちは特定の吐き出しについて議論しなければなりません。

はのは、例えばカフカ注ぎ口を見てみましょう。基本的にカフカの消費者との違いはありません。 Kafkaスパウトには異なるスパウト・タスクにパーティションを分配するロジックがあり、ロード・バランスもこの期間に処理されます.1つのパーティションは1つのスパウト・タスクだけで消費されるため、複数のデータはありません。