图案的工作原理

如果消息处理失败,消息会被转发到带有退回时间戳的重试主题。 重试主题的消费者会检查时间戳,如果未到期,就会暂停该主题分区的消费。 当分区到期时,分区消耗会恢复,消息再次被消耗。 如果消息处理再次失败,消息将被转发到下一个重试主题,重复此模式,直到成功处理或尝试用尽,消息才发送到死符主题(如配置)。spring-doc.cadn.net.cn

举例来说,如果你有一个“主主题”主题,想设置非阻塞重试,指数倒退为1000毫秒,最大尝试次数为2和4,它会创建主主题重试1000、主主题重试2000、主主题重试4000和主主题DLT主题,并配置相应的消费者。 该框架还负责创建主题、设置和配置听众。spring-doc.cadn.net.cn

使用这种策略时,你会失去卡夫卡对该主题的排序保证。
你可以设置AckMode你喜欢的模式,但记录建议。

使用手动挡时AckMode异步加速设为真时,默认错误处理必须配置为seekAfterError(寻找过错)设置为false. 从2.9.10、3.0.8版本开始,这个设置将被设置为false对于此类配置,无条件地。 在早期版本中,必须覆盖RetryTopicConfigurationSupport.configureCustomizers()将属性设置为 的方法false.spring-doc.cadn.net.cn

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

此外,在这些版本之前,使用默认(日志)DLT处理程序与任何手册都不兼容AckMode,无论异步加速财产。spring-doc.cadn.net.cn