重置为 Kafka 分区中的自定义偏移量
Posted
技术标签:
【中文标题】重置为 Kafka 分区中的自定义偏移量【英文标题】:Reset to custom offset in Kafka partition 【发布时间】:2020-02-24 07:13:53 【问题描述】:我正在针对我正在研究的特定用例研究 Kafka。我有一个正在流动的数据流,我想对其进行处理并将其发布到中间阶段。
在每个阶段(初始和中间) Samza 任务将进行处理和重新发布。我的要求之一是能够在我想要的任何时候从特定阶段重新触发整个处理管道。
我知道 kafka 为其每个日志维护一个偏移量(传入数据)。但是,Kafka 是否提供任何功能,我可以通过它映射 将偏移量分区到某些自定义标识符 (比如时间戳) 并使用它来重新触发从那时起的整个管道?
我在多个地方读到过,我可以通过从头重置并返回 N 次来重放 kafka 提交日志。但是有没有办法让我将这些偏移量映射到我自己的标识符(如时间戳),并将其用作一种机制来判断从哪个偏移量重播。
最佳 沙比尔
【问题讨论】:
【参考方案1】:您可以使用命令行工具 kafka-consumer-groups 根据时间戳(--to-datetime)重置消费者组的偏移量。在文档页面上查看更多信息:https://kafka.apache.org/documentation/#basic_ops_consumer_group
同样的,当然也可以通过代码实现。
【讨论】:
谢谢。这是我所期待的。是否有一些 Kafka SDK 可以让我们直接从代码中访问这些信息并重新配置偏移量? 我也可以用我自己的字段标记偏移量,这样当我说从这个字段的这个值运行时,它会选择正确的偏移量? medium.com/@werneckpaiva/…查看这篇文章如何在代码中执行此操作 据我所知,Kafka 不允许您在偏移量上放置任何“标签”。您可以使用任何数据库(例如表:主题、分区、偏移量 -> 标记)自行实现它以上是关于重置为 Kafka 分区中的自定义偏移量的主要内容,如果未能解决你的问题,请参考以下文章