Spring Kafka 消费者重试

Spring Kafka Consumer Retry

我正在使用 Spring Kafka 消费者,它从主题中获取消息并将它们保存到数据库中。如果满足失败条件,例如数据库不可用,kafka 消费者库是否提供重试机制?如果是这样,有没有办法设置不同的重试间隔,例如应该在 5 分钟后进行第一次重试,在 30 分钟后进行第二次重试,在 1 小时后进行第三次等。

Spring Kafka 附带 RetryingMessageListenerAdapterRetryingAcknowledgingMessageListenerAdapter。如果您使用 @KafkaListener,您可以提供 AbstractKafkaListenerContainerFactoryRetryTemplate。最后一个可以注入 Spring Retry 项目中的任何自定义 RetryPolicyBackOffPolicy

https://docs.spring.io/spring-kafka/reference/html/#retrying-deliveries

还要记住,自版本 2.0 以来,Spring Kafka 中有事务支持,基于 Apache Kafka 0.11.x.x:

https://docs.spring.io/spring-kafka/reference/html/#transactions