我正在使用Spring Kafka使用者从主题中获取消息并将其持久保存到数据库中。如果满足失败条件,比如说db不可用,kafka使用者库是否提供重试机制?如果确实如此,是否有办法设置不同的重试间隔,例如第一次重试应在5分钟后完成,第二次在30分钟后完成,第3次在1小时后等等。
答案 0 :(得分:7)
Spring Kafka附带RetryingMessageListenerAdapter
和RetryingAcknowledgingMessageListenerAdapter
。如果您使用@KafkaListener
,则可以AbstractKafkaListenerContainerFactory
提供RetryTemplate
。可以使用Spring Retry项目中的任何自定义RetryPolicy
和BackOffPolicy
注入最后一个:
还要记住,自版本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