Какова цель метки времени в записи производителя кафки

#apache-kafka #kafka-producer-api

Вопрос:

Мы можем указать метку ProducerRecord времени конструктору кафки.

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

Каково предназначение этой временной метки? Передается ли он вместе с сообщением брокеру Кафки?

Ответ №1:

Запись также имеет соответствующую метку времени. Если пользователь не указал метку времени, производитель отметит запись ее текущим временем. Метка времени, в конечном счете используемая Кафкой, зависит от типа метки времени, настроенного для темы.

  1. Если тема настроена для использования CreateTime , метка времени в записи производителя будет использоваться брокером.
  2. Если тема настроена для использования LogAppendTime , метка времени в записи производителя будет перезаписана брокером с указанием местного времени брокера, когда он добавит сообщение в свой журнал.

В любом из вышеперечисленных случаев фактически использованная метка времени будет возвращена пользователю в RecordMetadata

Ссылка — kafka.apache.org