如果在 Apache Flink 中操作时发生异常,则不会从 Apache Kafka 提交消息



有时,在处理和接收器期间,由于网络的原因,我很少收到异常。我希望不要提交这些消息,以便将来有时可以重新处理它们。

有没有办法实现这样的功能,我可以忽略偏移量提交的单个消息,以便将来有时可以处理它?

我目前正在遵循的一种解决方案是将这些消息沉入我们稍后处理的其他主题。

如果在处理消息期间发生任何异常,任务将重新启动,直到最终处理此消息。偏移量仅针对已完全处理的消息提交。

因此,如果不对源和接收器中的错误处理进行任何更改,则将获得所需的行为(也称为至少一次保证(。

顺便说一句,我建议您修复标签。

您将在处理过程中有错误的消息写入"死信队列"的方法是常见且有用的模式。 它也非常简单明了。不要改变任何东西。

相关内容

  • 没有找到相关文章

最新更新