Я немного озадачен ConcurrentKafkaListenerContainerFactory
и setErrorHandler(org.springframework.kafka.listener.ErrorHandler)
Не могли бы вы дать мне несколько советов, пожалуйста?
Я должен передать сообщение Кафки внешней системе. Прямо сейчас ErrorHandler
довольно наивно. Он отправляет сообщение на dead-letter-queue
, если обработчик сообщения выдает исключение. Обработчик сообщений может выдать исключение по двум причинам:
- нарушение бизнес-проверок
- внешняя система недоступна
Можно отправить сообщение на отказ-queue, если бизнес-проверки вызывают исключение.
Неправильно отправлять сообщение в очередь недоставленных сообщений, если внешняя система недоступна. Я должен реализовать своего рода откат и повторить попытку использования и обработки события до тех пор, пока внешняя система не вернется к жизни.
Я хотел бы посмотреть, есть ли какая-то квитанция Spring для такого случая. Спасибо!