web-dev-qa-db-ja.com

Apache Kafka-linger.msとbatch.size設定

kafkaプロデューサー設定で、linger.msを0に設定し、batch.sizeをゼロ以外に設定した場合、どのような動作が予想されますか?プロデューサーは、batch.sizeに到達するまでどのくらい待機しますか?メッセージを送信しますか?メッセージのサイズが指定したバッチサイズより小さくなるまで永久に待機しますかOR linger.msはゼロなので、バッチ処理を行わず、すべてのリクエストを送信しますか?

6
Vivek Agarwal

いいえ、これはプロデューサーがバッチがいっぱいになるのを待つことを意味するものではありません。プロデューサーは、半分だけのバッチ、およびメッセージが1つだけのバッチを送信します。

したがって、設定するバッチサイズが大きすぎても、メッセージの送信が遅延することはありません。バッチで使用するメモリが増えるだけです。バッチサイズの設定が小さすぎると、プロデューサーがより頻繁にメッセージを送信する必要があるため、オーバーヘッドが増加します。

デフォルト(linger.ms = 0)では、バッチにメッセージが1つしかない場合でも、プロデューサーは、送信可能な送信スレッドが使用可能になるとすぐにメッセージを送信します。

それが役に立てば幸い。

ありがとう。

4
dossani