【问题标题】:How to set the max queue time in Kafka 0.9 producer?如何在 Kafka 0.9 生产者中设置最大排队时间?
【发布时间】:2017-04-12 05:19:00
【问题描述】:

如何在 Kafka v0.9 中设置最大排队时间?

我的理解是Kafka生产者会尝试将队列中的消息缓冲到一定大小,然后将队列中的消息作为批处理发送给broker。但是在 Kafka v0.8 中,“queue.buffering.max.ms”的配置会在达到时间限制时发送队列中的消息,即使它们小于缓冲区大小。

可以将批处理配置为累积不超过固定数量的消息,并且等待不超过某个固定延迟限制(例如 64k 或 10 毫秒)。

来自 Kafka 0.9 文档: http://kafka.apache.org/documentation.html#design_asyncsend。 (本节与Kafka 0.8.2相同)

但我在 v0.9 生产者配置部分http://kafka.apache.org/documentation.html#producerconfigs 中没有找到“queue.buffering.max.ms”或等效项的配置@

还有没有办法在 Kafka v0.9 中进行配置,或者我必须调用 KafkaProducer.close()KafkaProducer.flush() 才能这样做?

【问题讨论】:

    标签: apache-kafka kafka-producer-api


    【解决方案1】:

    对于该配置,请使用 batch.sizelinger.ms

    【讨论】:

    • 谢谢。我之前误解了linger.ms
    【解决方案2】:

    您需要使用batch.sizequeue.time,而不是接受答案中所述的linger.ms

    linger.ms 是发送一批请求之前的延迟,但默认为零,而不是发送一批之前的最长时间。

    有关详细信息,请参阅:https://kafka.apache.org/documentation

    【讨论】:

      猜你喜欢
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-22
      • 2019-05-11
      • 1970-01-01
      • 2018-05-10
      • 2023-03-18
      相关资源
      最近更新 更多