Apache kafka 如果生产者执行重试,两条消息是否具有相同的时间戳?

Apache kafka 如果生产者执行重试,两条消息是否具有相同的时间戳?,apache-kafka,kafka-producer-api,Apache Kafka,Kafka Producer Api,至少一次语义:如果生产者从Kafka代理接收到确认(ack),并且acks=all,则表示消息已准确写入Kafka主题一次。但是,如果生产者确认超时或收到错误,它可能会在假定消息未写入Kafka主题的情况下重试发送消息。如果代理在发送ack之前失败,但在消息成功写入Kafka主题之后,此重试将导致消息写入两次,并因此多次传递给最终消费者 我知道时间戳是根据消息从生产者发送的时间设置的。 如果生产者执行重试,两条消息是否具有相同的时间戳?默认情况下,时间戳在记录创建时设置。因此,是的,如果生产者执

至少一次语义:如果生产者从Kafka代理接收到确认(ack),并且acks=all,则表示消息已准确写入Kafka主题一次。但是,如果生产者确认超时或收到错误,它可能会在假定消息未写入Kafka主题的情况下重试发送消息。如果代理在发送ack之前失败,但在消息成功写入Kafka主题之后,此重试将导致消息写入两次,并因此多次传递给最终消费者

我知道时间戳是根据消息从生产者发送的时间设置的。
如果生产者执行重试,两条消息是否具有相同的时间戳?

默认情况下,时间戳在记录创建时设置。因此,是的,如果生产者执行重试,则重复项具有相同的时间戳


如果将
message.timestamp.type
设置为
LogAppendTime
,则重复项将具有不同的时间戳,每个记录的时间戳将是代理将其附加到日志的有效时间。

默认情况下,时间戳在记录创建时设置。因此,是的,如果生产者执行重试,则重复项具有相同的时间戳

如果将
message.timestamp.type
设置为
LogAppendTime
,则重复项将具有不同的时间戳,每个记录的时间戳将是代理将其附加到日志的有效时间