Spring Cloud Stream Kafka中两类Timestamp含义及发布时间确认
Spring Cloud Stream Kafka消息头时间戳解析
针对你遇到的两个时间戳,结合Kafka和Spring Cloud Stream的机制,明确含义如下:
kafka_receivedTimestamp:
这个值对应Kafka消息记录的原始时间戳。结合你的kafka_timestamptype=createtime,可以确认该时间戳就是生产者发布消息的时间(也就是你需要的生产者端生成时间)。Kafka默认时间戳类型为CREATE_TIME,由生产者在发送消息时生成并写入记录;只有当生产者配置timestamp.type=LOG_APPEND_TIME时,这个值才会变为Broker摄入消息的时间。timestamp:
这个是Spring Cloud Stream框架自身添加的时间戳,代表消息被Spring消费者端接收并开始处理的时间,和生产者、Broker均无关,完全由Spring控制,所以你会看到它比kafka_receivedTimestamp晚(你的示例中两者相差约5秒)。
简单总结:你要获取的生产者发布时间就是kafka_receivedTimestamp,timestamp则是本地消费端的处理时间。
内容的提问来源于stack exchange,提问作者ging
相关产品推荐
相关产品推荐

