首页 > 解决方案 > 不在时间戳 Kafka 之前处理

问题描述

Kafka 中是否有开箱即用的机制来生成在给定时间戳之前不应处理的记录,而不管主题的内容如何?

谢谢。

标签: apache-kafka

解决方案


没有;Kafka 通过偏移量而不是时间戳来消费。但这并不能阻止您的消费者将消息传递给某些辅助工作人员“优先队列”,这些辅助工作人员“优先队列”按时间戳排序,该时间戳由检查下一个要处理的事件的调度程序线程支持

唯一的问题是,如果您在等待消息“O@T”时处理时间为“T-1”的消息偏移量“O+1”,并且您的消费者崩溃并丢失了该内存队列,那么您实际上是在跳过消息(提交 O+1 而不处理 O)

根据您的应用程序,这可能没问题,因为您可以再次复制记录以将它们排队。您还可以通过特定时间戳(默认为生成记录的时间)寻找特定的偏移量或获取(近似)偏移量


推荐阅读