Если он работает так, как вы хотите, зачем его менять?
Есть несколько слоев, и вы можете выбрать, какой из них будет обрабатывать ошибки, в зависимости от ваших потребностей.
KafkaListenerErrorHandler
будет вызываться для каждой попытки доставки в повторной попытке, поэтому вы обычно не будете использовать ее с повторной попыткой. - Повторная попытка
RecoveryCallback
вызывается после исчерпания повторных попыток (или немедленно, если вы классифицировалиисключение как не повторяемое). ErrorHandler
- находится в контейнере и вызывается, если какой-либо слушатель выдает исключение, а не только @KafkaListener
s.
С последними версиямиФреймворк, в котором вы можете полностью заменить повтор уровня прослушивания на SeekToCurrentErrorHandler
, настроенный на DeadLetterPublishingRecoverer
и BackOff
.
. DeadLetterPublishingRecoverer
предназначен для использования в обработчике ошибок контейнера, так как для него требуется необработанныйConsumerRecord<?, ?>
.
KafkaListenerErrorHandler
имеет доступ только к пружинным сообщениям Message<?>
, преобразованным из ConsumerRecord<?, ?>
.
.