信息在卡夫卡中创造了时间



当我在Kafka中消费消息时,我如何知道这个消息是何时产生/创建的?

There is no created method in MessageAndMetadata.

必要时如何在卡夫卡中设置偏移?我更喜欢通过代码或命令行进行设置。

谢谢。

Apache Kafka 0.7或0.8中目前没有每条消息的时间戳,但它会很方便。

存在的是偏移API中基于时间的偏移锁定:

时间-用于在特定时间(ms)之前询问所有消息。有两个特殊值。指定-1以接收最新的偏移量(即下一条消息的偏移量),指定-2以接收最早的可用偏移量。请注意,由于偏移量是按降序提取的,因此要求最早的偏移量总是会返回一个元素。

https://cwiki.apache.org/confluence/display/KAFKA/A+指南+To+The+Kafka+协议#AGuideToTheKafkaProtocol偏移API

它依赖于代理上主题+分区段文件的文件系统ctime,因此它有点粗糙(取决于文件旋转间隔等),并且在复制的情况下可能完全不正确(复制的时间戳,而不是创建原始段的时间戳)。

解决方案是将消息创建时间嵌入到消息本身中。

最新更新