小编r3s*_*e55的帖子

KafkaIO检查点 - 如何提交补偿卡夫卡

我正在使用Google Dataflow中的Beam KafkaIO源运行作业,找不到在作业重新启动期间持久保存偏移的简单方法(作业更新选项不够,我需要重新启动作业)

将Beam的KafkaIO与PubSubIO进行比较(或者更精确地说是比较PubsubCheckpoint与KafkaCheckpointMark),我可以看到,在KafkaIO中并未实现检查点持久性(KafkaCheckpointMark.finalizeCheckpoint方法为空),而在PubsubCheckpoint.finalizeCheckpoint中实现了它,它对PubSub进行了确认。

这是否意味着我无法以最小的努力可靠地管理作业重启时的Kafka偏移量?

我到目前为止考虑的选项:

  1. 实现我自己的持久偏移逻辑-听起来很复杂,我在Scala中使用Beam尽管Scio。

  2. 不执行任何操作,但这将导致作业重新启动时出现许多重复(主题的保留期为30天)。

  3. 启用自动提交,但这会导致丢失消息,甚至更糟。

scala apache-kafka google-cloud-dataflow apache-beam

5
推荐指数
1
解决办法
1068
查看次数