【发布时间】:2021-10-29 09:27:18
【问题描述】:
我想跟踪 kafka 生产者中的记录时间戳:生产者何时发送记录以及代理何时收到确认并存储记录(在确认时间戳上)。 每条记录的标题中都有字符串 id。
对我来说,最好的方法是实现 Kafka ProducerInterceptor:
@Override
public ProducerRecord<K, V> onSend(ProducerRecord<K, V> record) {
}
@Override
public void onAcknowledgement(RecordMetadata metadata, Exception exception) {
}
在onAcknowledgement 我有RecordMetadata 并且可以获得acks 时间戳,但我不明白如何匹配我接收元数据的记录?
正如我从KIP-512 看到的,这是常见问题,正在讨论中。
如何匹配 onAcknowledgement 中的记录?或者可能有更好的方法来跟踪记录的发送/接收时间戳?
不,我不能使用生产者回调,因为我不能更改生产者代码。
【问题讨论】:
-
元数据中有主题、偏移量和分区,还想要什么?您确实意识到“勇敢”的 Kafka 库已经提供了跟踪时间的分布式跟踪拦截器,对吧?
标签: apache-kafka kafka-producer-api