notify
Consumer
に、Producer
がすべてKafka topic
に公開されると可能ですか?スパークストリーミング - プロデューサが完了したらどのように消費者に通知するのですか?
複数のパーティションで同じデータ(いくつかの一意のフィールドを持つ)を使用できる可能性があるので、データをグループ化して計算する必要があります。
私はこれにSliding window
を使用することを考えましたが、プロデューサがデータの公開を完了したかどうかはわかりません。
メッセージの量はaround 50K
です。より良い設定のブローカーがあれば、Kafkaは50K messages[Single partition]
を数秒で処理できますか?
現在、Default Partitioner
に基づいてデータを分割する複数のパーティションを計画しています。
これを処理する効率的な方法はありますか?
更新:
15分ごとに一回、プロデューサーは、データを取得し、それはカフカのトピックにデータを公開開始し、私はこのバッチのためのユースケースであると確信していますが、これは私たちの現在の設計です。
ストリームについて話しているときに「完了」とは何を意味するのか不明です。彼らは不規則な長さのストリームの全体のポイントではありませんか?プロデューサがメッセージのバッチを生成していて、バッチ境界を気にしている場合は、「バッチ終了」メッセージを投稿することができます。 –
@JoePallas:私はポイントを得ることはありません、あなたは "バッチの終わり"メッセージを投稿することによって何を意味しますか? – Shankar
プロデューサはバッチの処理が完了した時点を知っていますが、コンシューマはバッチ内のすべてのメッセージを見たかどうかを知りません。バッチのすべてのデータが公開された後、プロデューサが特別な「バッチ終了」メッセージを発行した場合、消費者はバッチを処理する前にそれを見るまで待つことができます。複数のパーティションがあると、それはもっと複雑になります。マーカーはすべてのパーティションに移動する必要があります。 –