2017-10-26 3 views
0

batch.sizeを小さくすると、プロデューサでメッセージを送信するオーバーヘッドが増え、同時にスループットが低下し、メモリを大量に消費します。このサイズが負荷に応じて動的になる可能性のあるソリューションはありますか?kafkaプロデューサでbatch.sizeを動的にするにはどうすればよいですか?

+1

https://issues.apache.org/jira/browse/KAFKA-1026 –

+0

着信負荷をどのように予測しますか?過去1分間の着信負荷は、次の/未来の分と同じではない可能性があります。 –

答えて

0

以前のプロデューサを停止して新しいプロデューサを開始した場合のみ。プロデューサオブジェクトは、メッセージを送信する前にすべてのプロパティを必要とします。ジョブの途中でプロパティを変更することはできません。

+0

だから、このプロパティを設定するためのベストプラクティスは何ですか? –

+0

この問題に対処する2つの視点があります:レイテンシとスループット。あなたは一度にどちらかを持つことはできません。最大のスループットを達成したい場合や、最大遅延を設定する場合は、linger.ms = 0と設定すると、linger.msを使用できます。 – subzero

0

linger.msbatch.sizeプロパティを組み合わせて使用​​できます。 batch.sizeを5242880(5 MB)、linger.ms10 msに設定した場合は、次に、プロデューサは、バッチサイズが満たされるか、または残存時間に達するまで待つ。

linger.msプロパティの詳細については、公式ドキュメントを参照してください。

関連する問題