消息在Kafka创建时间

时间:2014-04-24 07:52:57

标签: apache-kafka

当我在Kafka中使用消息时,如何知道何时生成/创建此消息?

There is no created method in MessageAndMetadata.

如何在必要时设置卡夫卡的偏移量?我更喜欢按代码或命令行设置。

感谢。

1 个答案:

答案 0 :(得分:0)

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

Offset API中存在基于时间的偏移量查找:

  

时间 - 用于在特定时间(ms)之前询问所有消息。有两个特殊值。指定-1以接收最新的偏移(即下一个消息的偏移)和-2以接收最早的可用偏移。请注意,因为偏移是按降序拉动的,所以要求最早的偏移将始终返回单个元素。

https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-OffsetAPI

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

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