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

Kafka ProducerRecord中timestamp的作用是什么?是否会随消息发送到Broker?

我们可以在Kafka ProducerRecord的构造方法中指定timestamp参数,对应构造方法签名如下:

public ProducerRecord(String topic, Integer partition, Long timestamp, K key, V value, Iterable<Header> headers)

1. timestamp参数的设计用途

  • 业务时间标记:支持业务自定义消息的事件发生时间,无需额外将时间字段写入消息体,也可用于计算消息生产到消费的全链路延迟,做链路耗时监控。
  • 日志清理规则依据:Kafka基于时间的日志过期删除策略,默认会以消息自带的timestamp为判断基准,决定该消息是否达到留存周期需要被清理,比直接用Broker接收时间更符合业务场景的清理需求。
  • 流处理时间语义支撑:Kafka Streams、Flink等流处理组件可以直接读取该timestamp作为事件时间(Event Time)的默认来源,天然支持窗口计算、乱序消息处理等流处理核心逻辑,降低开发成本。

2. 是否会随消息传输到Kafka Broker

该timestamp属于消息的官方元数据字段,会和key、value、消息头等内容一起序列化后发送到Broker,默认会被持久化到分区日志中,消费者拉取消息时也可以直接读取到该字段值。
需要注意的是,如果Broker侧配置了message.timestamp.type=LogAppendTime,那么Broker会在消息写入日志时用自身的本地时间覆盖生产者传递的timestamp值,最终持久化和返回给消费者的是Broker的写入时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:39:03