Spring Kafka Consumer Retry

时间:2017-10-02 19:08:55

标签: spring-boot apache-kafka kafka-consumer-api spring-kafka

我正在使用Spring Kafka使用者从主题中获取消息并将其持久保存到数据库中。如果满足失败条件,比如说db不可用,kafka使用者库是否提供重试机制?如果确实如此,是否有办法设置不同的重试间隔,例如第一次重试应在5分钟后完成,第二次在30分钟后完成,第3次在1小时后等等。

1 个答案:

答案 0 :(得分:7)

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

https://docs.spring.io/spring-kafka/docs/2.0.0.RELEASE/reference/html/_reference.html#_retrying_deliveries

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

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