kafka命令行生产者/消费者有1秒的延迟

s5a0g9ez  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(323)

我正在用命令行producer和consumer测试kafka。
我在一个终端窗口运行这个

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

这是另一个

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

但我发送给消费者打印的数据需要1秒以上的时间。我发送的数据是我输入到生产者的,所以基本上每隔几秒钟就有一条消息。有什么配置选项我可以改变,使kafka代理期望很少的消息每秒,从而使消息移动明显更快?
我使用的是zookeeper和kafka的默认配置,所以我没有配置太多。
提前谢谢!

4xrmg8kj

4xrmg8kj1#

kafka有两个配置参数-一个是设置在回答消费者请求之前接收的最小数据量,另一个是设置在回答请求之前等待此数据到达的最大时间量。
您可以尝试添加以下选项:

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

更多信息:
有关详细信息,请查看此问题。
检查Kafka消费者配置。

nfs0ujit

nfs0ujit2#

由于ivan georgiev的回答对我不起作用(不仅因为它是关于消费者,而不是生产者),我在stackoverflow中提出了另一个问题,最后在apache的jira和ppatierno(谢谢)中回答了为什么会发生以及如何解决它。
用于更改控制台生产者的属性 linger.ms (默认为1000ms)和 batch.size (默认情况下为16384)您需要在命令行中使用 --timeout 以及 --max-partition-memory-bytes 例如,如果您在Kafka的主文件夹中:

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

相关问题