2017-01-06 4 views
1

私はコマンドラインプロデューサとコンシューマを使用してKafkaでテストを実行しています。Kafkaのコマンドラインプロデューサ/コンシューマは1秒の待ち時間を持っています

私は別の

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic tag7 --zookeeper localhost:2181 

に1つのターミナルウィンドウ

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic tag7 

と、この中でこれを実行しているが、それは私が消費者によって印刷されるために送られたデータのために1秒以上かかります。私が送信しているデータは、プロデューサーに入力するものなので、基本的には数秒ごとに1つのメッセージになります。 Kafkaブローカーが毎秒のメッセージ数が非常に少ないため、メッセージが大幅に速くなるように変更できる設定オプションはありますか?

私はZookeeperとKafkaのデフォルト設定を使用していますので、あまり設定していません。

ありがとうございます!

答えて

1

カフカには2つの設定パラメータがあります.1つはコンシューマの要求に応答する前に受信したデータの最小量を設定し、もう1つは要求に応答する前にこのデータが到着するのを待つ最大時間を設定することです。詳細情報については

--consumer-property fetch.max.wait.ms=0 --consumer-property fetch.min.bytes=0 

を::

次のオプションを追加しようとすることができます詳細については、このissue

2

(それは消費者ではなくプロデューサーについてですので、だけではなく)Ivan Georgievからの答えは私のために動作しなかったので、私はanother question here in StackOverFlowを開け、そして最後にまたApache's Jirappatiernoで(感謝)はなぜ答えそれが起こったとそれを解決する方法。

linger.ms(デフォルトは1000ミリ秒)とbatch.size(デフォルトは16384)コンソールプロデューサーのプロパティを変更するために、あなたはカフカのメインフォルダにある場合、例えば、それぞれ--timeout--max-partition-memory-bytesと、コマンドラインで指定する必要があります。

./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testConsole --timeout 100 
+0

実際には両方の回答が正しいです。 Ivanの答えは消費者の待ち時間を調整する方法です。この答えはプロデューサの待ち時間を調整する方法です。生産者側のデフォルトからの改善の余地が増えています。両方を行う場合は、エンドツーエンドのレイテンシに最適な結果を得る必要があります。 –

+0

はい私は知っている(私は私の答えにそれを追加するつもりです!)、物事は消費者の中で1秒未満の遅延を持つようにするために(少なくともバージョン0.10.2.1では)必要ではないということですこれは生産者によってもたらされる。 – Franmoti

+0

また、console-producerはデフォルトでacks = 1に設定されているため、待ち時間が短縮されますが、メッセージが失われる可能性があるため、ブローカを強制終了したときにメッセージが失われたり、 –

関連する問題