我们使用 Kafka 作为我们的消息队列。我们的业务要求消息时间戳必须与偏移量具有相同的顺序,也就是说:如果存在消息 m1 和消息 m2,并且 (m1.timestamp < m2.timestamp),但 m1 的偏移量比 m2 小,则必须确保在消费这些消息时 m1 先于 m2。
CreateTime
- 时间戳在生产者记录创建时分配,因此是在发送之前。由于可能会重试,所以不能保证排序顺序。
- LogAppendTime
- 时间戳在记录附加到代理商日志时分配。在这种情况下,每个分区的排序顺序都得以保留。多条消息可能被分配相同的时间戳。CreateTime
。要更改此设置,请为代理或特定主题设置log.message.timestamp.type
或message.timestamp.type
。