在 Kafka 中使用每条失败消息的退避时间重试
Retry with backoff time per consumed message that fails in Kafka
在 Kafka 中,如果消息处理失败,是否可以为每条消息设置退避时间? - 这样我就可以处理其他消息,稍后再试一次失败的消息?如果我只是把它放在主题前面,它会很快重新出现。我在 Spring Boot.
中使用 Kafka
据我所知,Kafka 在使用数据时没有任何 built-in 退避时间功能。
一旦您成功处理了其他消息并提交了它们,就很难 re-read 只处理那些处理失败的消息。 Kafka 主题被构建为按顺序使用,同时保证每个 TopicPartition 的消息顺序。
在这种情况下我们通常做的是在处理消息的过程中捕获异常,然后将其发送到一个单独的主题(连同错误code/hint)并继续处理后面传入的消息。这样您就可以稍后分析数据,并在必要时将消息从其他主题再次移至您的原始主题。
将有问题的消息从单独的主题插入到您的原始输入主题中可以通过您不时 运行 或什至使用 Kafka 提供的命令行工具的简单批处理作业来完成。
在 Kafka 中,如果消息处理失败,是否可以为每条消息设置退避时间? - 这样我就可以处理其他消息,稍后再试一次失败的消息?如果我只是把它放在主题前面,它会很快重新出现。我在 Spring Boot.
中使用 Kafka据我所知,Kafka 在使用数据时没有任何 built-in 退避时间功能。
一旦您成功处理了其他消息并提交了它们,就很难 re-read 只处理那些处理失败的消息。 Kafka 主题被构建为按顺序使用,同时保证每个 TopicPartition 的消息顺序。
在这种情况下我们通常做的是在处理消息的过程中捕获异常,然后将其发送到一个单独的主题(连同错误code/hint)并继续处理后面传入的消息。这样您就可以稍后分析数据,并在必要时将消息从其他主题再次移至您的原始主题。
将有问题的消息从单独的主题插入到您的原始输入主题中可以通过您不时 运行 或什至使用 Kafka 提供的命令行工具的简单批处理作业来完成。