首页 > 解决方案 > 重置为 Kafka 分区中的自定义偏移量

问题描述

我正在为我正在研究的特定用例研究 Kafka。我有一个正在流动的数据流,我想对其进行处理并将其发布到中间阶段。

在每个阶段(初始和中间), Samza 任务都会进行处理和重新发布。我的要求之一是能够在我想要的任何时候从特定阶段重新触发整个处理管道。

我知道 kafka 为其每个日志(传入数据)维护一个偏移量。但是,Kafka 是否提供任何功能,可以分区偏移量映射到某个自定义标识符(例如时间戳)并使用它从该点重新触发整个管道?

我在多个地方读过,我可以通过重新设置开头并返回 N 次来重放 kafka 提交日志。但是有没有办法让我将这些偏移映射到我自己的标识符(如时间戳),并将其用作一种机制来判断从哪个偏移重放。

最好
的沙比尔

标签: apache-kafkastream-processingapache-samza

解决方案


您可以使用命令行工具 kafka-consumer-groups 根据时间戳(--to-datetime)重置消费者组的偏移量。在文档页面上查看更多信息:https ://kafka.apache.org/documentation/#basic_ops_consumer_group

当然,同样可以通过代码实现。


推荐阅读