使用Kafka中失败的每条消耗的消息的回退时间重试



在Kafka中,如果处理每条消息失败,是否可以设置该消息的回退时间?-这样我就可以处理其他消息,并稍后对失败的消息重试?如果我把它放回主题前面,它会很快重新出现。我正在使用带有Spring Boot的Kafka。

据我所知,Kafka在消耗数据时没有任何内置的退避功能。

一旦成功处理了其他消息并提交了它们,就很难只重读那些处理失败的消息。Kafka主题被构建为按顺序消费,同时保证每个TopicPartition的消息顺序。

在这种情况下,我们通常会在处理消息的过程中捕获异常,然后将其发送到一个单独的主题中(以及错误代码/提示(,并继续处理稍后传入的消息。这样,您就可以稍后分析数据,并在必要时将其他主题中的消息再次转移到您的原始主题中。

将来自单独主题的有问题的消息插入到原始输入主题中可以通过一个简单的批处理作业来完成,您可以不时运行该作业,甚至可以使用Kafka提供的命令行工具。

最新更新