J'utilise Spring Kafka consumer qui récupère les messages d'un sujet et les conserve dans une base de données. Si une condition d'échec est remplie, disons par exemple que la base de données n'est pas disponible, kafka fournit un mécanisme pour réessayer? Si tel est le cas, existe-t-il un moyen de définir différents intervalles de relance, tels que la première relance doit être effectuée après 5 minutes, la deuxième après 30 minutes, la troisième après 1 heure, etc.
Spring Kafka est fourni avec RetryingMessageListenerAdapter
et RetryingAcknowledgingMessageListenerAdapter
. Si vous utilisez @KafkaListener
, vous pouvez fournir AbstractKafkaListenerContainerFactory
avec le RetryTemplate
. Et le dernier peut être injecté avec n'importe quel RetryPolicy
et BackOffPolicy
personnalisé du projet Spring Retry:
Gardez également à l'esprit que depuis la version 2.0
, Spring Kafka prend en charge les transactions, basé sur celui-ci dans Apache Kafka 0.11.x.x
:
https://docs.spring.io/spring-kafka/docs/2.0.0.RELEASE/reference/html/_reference.html#transactions