如果消息处理失败,则消息将转发到带有回退时间戳的重试主题。 然后,重试主题使用者会检查时间戳,如果时间戳未到期,则会暂停该主题分区的使用。 到期时,将恢复分区消耗,并再次消耗消息。 如果消息处理再次失败,则消息将转发到下一个重试主题,并重复该模式,直到成功处理或尝试耗尽,并将消息发送到死信主题(如果已配置)。Spring中文文档

举例来说,如果您有一个“main-topic”主题,并且想要设置非阻塞重试,其指数回退为 1000 毫秒,最大尝试次数为 2 和 4 次,它将创建 main-topic-retry-1000、main-topic-retry-2000、main-topic-retry-4000 和 main-topic-dlt 主题并配置相应的使用者。 该框架还负责创建主题以及设置和配置侦听器。Spring中文文档

通过使用此策略,您将失去 Kafka 对该主题的排序保证。
通过使用此策略,您将失去 Kafka 对该主题的排序保证。
您可以设置您喜欢的模式,但建议您这样做。AckModeRECORD
您可以设置您喜欢的模式,但建议您这样做。AckModeRECORD
目前,此功能不支持类级批注。@KafkaListener
目前,此功能不支持类级批注。@KafkaListener

使用设置为 true 的手册时,必须将 设置为 。 从版本 2.9.10、3.0.8 开始,对于此类配置,此设置将无条件设置。 在早期版本中,必须重写将属性设置为 的方法。AckModeasyncAcksDefaultErrorHandlerseekAfterErrorfalsefalseRetryConfigurationSupport.configureCustomizers()falseSpring中文文档

@Override
protected void configureCustomizers(CustomizersConfigurer customizersConfigurer) {
    customizersConfigurer.customizeErrorHandler(eh -> eh.setSeekAfterError(false));
}

此外,在这些版本之前,使用默认(日志记录)DLT 处理程序与任何类型的手册都不兼容,无论属性如何。AckModeasyncAcksSpring中文文档