Spring Kafka Consumer Retry

Pun*_*cky 9 apache-kafka spring-boot kafka-consumer-api spring-kafka

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

Art*_*lan 12

Spring Kafka随附RetryingMessageListenerAdapterRetryingAcknowledgingMessageListenerAdapter.如果你使用@KafkaListener,你可以提供AbstractKafkaListenerContainerFactoryRetryTemplate.最后一个可以注入任何自定义RetryPolicyBackOffPolicySpring Retry项目:

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

  • 这是正确的。同一分区中的记录是按顺序处理的,因此,在“5”成功或重试耗尽之前,不会处理“6”。 (2认同)