「フィールドのグループ化」と「ローカルまたはシャッフルのグループ化」をトポロジに適用して、各スパウトがデータをローカルボルトにのみ送信するだけでなく、ドキュメント内のフィールドを使用してどのローカルボルトに送信するかを決定したいと考えています。
したがって、それぞれ 1 つの Kafka-Spout と 2 つの Elastic-Search-Bolt を持つ 2 つのワーカー プロセスがある場合、ローカルまたはシャッフル グループ化により、次のようになります。
Each KS ---> Two local ES-Bolts
フィールドのグループ化により、次のことがわかります。
Each KS ---> Possibly all 4 ES-bolts, depending on the value of the field
しかし、私は次のことをしたいです:
Each KS ---> Two local ES-bolts only, but distribution among these
local bolts should depend on the value of the field
どこ:
KS = カフカスパウト
ES = エラスティックサーチ
ES-bolt で 1 つのシャードのすべてのドキュメントをグループ化できるように、これを行いたいと考えています。このようにして、ES-bolt によって送信されたバッチは、ES サーバーによってさらに分割されることはありません。これは、これらのドキュメントの宛先シャードがすべて同じになるためです (フィールド レベルのグループ化のためにドキュメントにフィールドdestination_shardを追加する予定であり、destination_shard が計算されます)。 Murmurm3.hash(ID)%numShards として)。
そして、プロセス間通信は必要ないため、「ローカルまたはシャッフルのグループ化」が必要です
助けてくれてありがとう !