0

メッセージのバッチを取得するソースがあります。これらのメッセージは確実に Kafka に追加する必要があります。

aync プロデューサーを使用すると、多くのメッセージを送信するときに、パーティションがしばらくダウンしていないかどうか疑問に思います。そのメッセージをスキップして次のメッセージを送信するだけで、メッセージの順序が正しくありません。

Kafka に指示できる方法はありますか?一連のメッセージをバッチで生成し、アトミックにすべてを渡すか、すべてを失敗させるか?

*スループットに深刻な影響を与えるため、同期プロデュースは実行したくありません。

4

1 に答える 1

0

これにはメッセージキーを使用できます。Kafka は、単一のパーティション内のメッセージの順序を保証しますが、複数のパーティション間では保証しません。単一のキーを持つすべてのメッセージが単一のパーティションに渡されるため、順序が保持されます。また、バッチとして送信された場合、それらはすべて一緒に合格または不合格になります。しかし、トレードがあります: これらのメッセージはすべて単一のマシンによって処理されます - 並列処理はありません。

キーとパーティションの背景情報については、こちらの公式のカフカ ドキュメントを参照してください: http://kafka.apache.org/documentation.html#intro_producers
http://kafka.apache.org/documentation.html#intro_consumers

于 2016-02-08T12:32:18.357 に答える