kafka ProducerRecord中时间戳的用途是什么

What is the purpose of timestamp in kafka ProducerRecord

我们可以为 kafka ProducerRecord 构造函数指定一个时间戳。

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

这个时间戳的预期用途是什么?是否随消息一起传递给kafka broker?

The record also has an associated timestamp. If the user did not provide a timestamp, the producer will stamp the record with its current time. The timestamp eventually used by Kafka depends on the timestamp type configured for the topic.

  1. 如果主题配置为使用 CreateTime,生产者记录中的时间戳将由代理使用。
  2. 如果主题配置为使用 LogAppendTime,生产者记录中的时间戳将在将消息附加到其日志时被代理本地时间覆盖。

以上任何一种情况,都会在RecordMetadata中返回给用户实际使用过的时间戳

Reference - kafka.apache.org