提问者:小点点

重置为Kafka分区中的自定义偏移量


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

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

我知道kafka为它的每个日志(传入数据)保留一个偏移量。然而,Kafka是否提供了任何功能,我可以使用这些功能将分区偏移映射到一些自定义标识符(比如时间戳),并使用它从病房的那个点重新触发整个管道?

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

最佳沙比尔


共1个答案

匿名用户

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

当然,同样的事情也可以通过代码来实现。