You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kafka Producer何时开始计算linger.ms的等待时长?

Kafka Producer linger.ms 计时规则说明

关于batch.size的配置规则如下:

该配置指定了待发送消息批次的大小上限。若对应分区累积的消息字节数未达到该阈值,系统将等待linger.ms设定的时长,等待更多记录进入批次。linger.ms默认值为0,即即使累积的批次大小未达到batch.size设定的阈值,也会立即发送记录。

针对linger.ms的计时起点问题,结论非常明确:计时器从对应分区的某个空批次写入第一条消息的瞬间开始启动,具体运行逻辑如下:

  • Kafka生产者会为每个主题分区单独维护待发送批次,当分区没有正在填充的在制批次时,新抵达的消息会触发创建新的空批次
  • 第一条消息写入这个空批次的时刻,就是该批次linger.ms倒计时的起点,后续陆续写入同个批次的消息都不会重置、重启这个计时器
  • 如果倒计时走完时,批次累积的消息大小还没到batch.size的阈值,批次会直接被标记为就绪,进入发送队列
  • 如果在倒计时结束前,批次大小先达到了batch.size阈值,会立刻触发批次发送,对应的等待计时器直接失效,不再继续等待
  • 当linger.ms保持默认值0时,第一条消息写入后根本不会启动等待计时器,批次会直接被标记为可发送,这也是默认配置下生产消息延迟极低的原因

内容的提问来源于stack exchange,提问作者Mandroid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 03:03:39