如何在Kafka v0.9中设置最大队列时间?
我的理解是Kafka生产者将尝试将队列中的消息缓冲到一定大小,然后将队列中的消息作为批处理发送到代理。但是在Kafka v0.8中," queue.buffering.max.ms"的配置。即使它们小于缓冲区大小,它也会在达到时间限制时发送队列中的消息。
批处理可以配置为累积不超过固定数量的消息,并且等待不超过一些固定的延迟限制(比如64k或10 ms)。
来自Kafka 0.9文件: http://kafka.apache.org/documentation.html#design_asyncsend。 (此部分与Kafka 0.8.2相同)
但我没有找到" queue.buffering.max.ms"的配置。或v0.9生成器配置部分中的等效部分http://kafka.apache.org/documentation.html#producerconfigs
是否仍有办法在Kafka v0.9中配置此功能,或者我必须致电KafkaProducer.close()
或KafkaProducer.flush()
才能这样做?
答案 0 :(得分:2)
对于该配置,请使用batch.size
和linger.ms
答案 1 :(得分:0)
您需要按照接受的答案中的说明使用batch.size
和queue.time
,而不是linger.ms
。
linger.ms
是发送一批请求之前的延迟,但默认为零,而不是发送批次之前的最长时间。
有关详细信息,请参阅:https://kafka.apache.org/documentation。