我想了解什么时候应该使用 org.springframework.retry.RecoveryCallback 和 org.springframework.kafka.listener.KafkaListenerErrorHandler?
截至今天,我正在使用一个类(实现 org.springframework.retry.RecoveryCallback)来记录错误消息并将消息发送到 DLT,它正在工作。为了向 DLT 发送消息,我使用了 Spring KafkaTemplate,然后遇到了 KafkaListenerErrorHandler 和 DeadLetterPublishingRecoverer。现在,你能建议我,我应该如何使用 KafkaListenerErrorHandler 和 DeadLetterPublishingRecoverer 吗?这可以替代 RecoveryCallback 吗?
这是我当前的 kafkaListenerContainerFactory 代码
@Bean
public ConcurrentKafkaListenerContainerFactory kafkaListenerContainerFactory() {Run Code Online (Sandbox Code Playgroud)ConcurrentKafkaListenerContainerFactory<String, Object> factory = new ConcurrentKafkaListenerContainerFactory<>(); factory.setConsumerFactory(primaryConsumerFactory()); factory.setRetryTemplate(retryTemplate()); factory.setRecoveryCallback(recoveryCallback); factory.getContainerProperties().setAckMode(AckMode.RECORD); factory.setConcurrency(1); factory.getContainerProperties().setMissingTopicsFatal(false); return factory; }
spring-kafka ×1