我正在使用命令行生产者和消费者对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的默认配置,所以我没有配置太多。
提前谢谢!
答案 0 :(得分:3)
Kafka有两个配置参数 - 一个是在回答消费者请求之前设置接收的最小数据量,另一个是设置在回答请求之前等待此数据到达的最长时间。
您可以尝试添加以下选项:
--consumer-property fetch.max.wait.ms=0 --consumer-property fetch.min.bytes=0
欲了解更多信息:
答案 1 :(得分:3)
由于Ivan Georgiev的答案对我不起作用(不仅因为它是关于消费者而不是生产者),我打开了another question here in StackOverFlow,最后也打开了Apache's Jira和 ppatierno(谢谢)回答了为什么会发生以及如何解决它。
要更改控制台生成器的属性batch.size
(默认为1000毫秒)和--timeout
(默认为16384),您需要在--max-partition-memory-bytes
和{{1}的命令行中指定它例如,如果您在Kafka的主文件夹中,则分别为:
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testConsole --timeout 100