我正在使用spring boot 2.1.7.RELEASE和spring-kafka 2.2.8.RELEASE。并且我正在使用@KafkaListener批注创建消费者,并且正在使用该消费者的所有默认设置。我使用的是Spring-Kafka文档中指定的以下配置。
// other props
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, ErrorHandlingDeserializer2.class);
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, ErrorHandlingDeserializer2.class);
props.put(ErrorHandlingDeserializer.KEY_DESERIALIZER_CLASS, StringDeserializer.class);
props.put(ErrorHandlingDeserializer.VALUE_DESERIALIZER_CLASS, AvroDeserializer.class.getName());
return new DefaultKafkaConsumerFactory<>(props);
现在,我的要求是在存在反序列化异常时。请建议我该怎么做。
答案 0 :(得分:1)
将配置为SeekToCurrentErrorHandler
的{{1}}添加到容器。
反序列化异常被视为致命异常,将不会重试。
如果出于某种原因要编写自己的错误处理程序,DeadLetterPublishingRecoverer
中的代码将显示如何提取异常信息。