如果在Apache Flink中进行操作时发生异常,则不提交来自Apache Kafka的消息

时间:2019-12-20 09:33:53

标签: apache-kafka apache-flink

有时候,在处理和接收期间,由于网络的缘故,我几乎没有例外。我希望不要提交这些消息,以便将来可以重新处理它们。

有什么方法可以实现这样的功能,使我可以忽略偏移量提交中的单个消息,以便将来可以在某些时候对其进行处理?

我目前正在关注的一种解决方案是将这些消息发送到我们稍后处理的其他主题。

2 个答案:

答案 0 :(得分:1)

如果在处理消息期间发生任何异常,则将重新启动任务,直到最终处理了该消息。偏移仅适用于已完全处理的邮件。

因此,如果您不对源和接收器中的错误处理进行任何更改,您将完全得到所需的行为(也称为at-least once guarantee)。

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

答案 1 :(得分:1)

您将处理过程中有错误的消息写入“死信队列”的方法是一种常见且有用的模式。这也非常简单明了。不要更改任何内容。