#apache-kafka #kafka-producer-api
Вопрос:
Мы можем указать метку ProducerRecord
времени конструктору кафки.
public ProducerRecord(String topic, Integer partition, Long timestamp, K key, V value, Iterable<Header> headers)
Каково предназначение этой временной метки? Передается ли он вместе с сообщением брокеру Кафки?
Ответ №1:
Запись также имеет соответствующую метку времени. Если пользователь не указал метку времени, производитель отметит запись ее текущим временем. Метка времени, в конечном счете используемая Кафкой, зависит от типа метки времени, настроенного для темы.
- Если тема настроена для использования
CreateTime
, метка времени в записи производителя будет использоваться брокером. - Если тема настроена для использования
LogAppendTime
, метка времени в записи производителя будет перезаписана брокером с указанием местного времени брокера, когда он добавит сообщение в свой журнал.
В любом из вышеперечисленных случаев фактически использованная метка времени будет возвращена пользователю в RecordMetadata