当前位置: 首页 > 知识库问答 >
问题:

SpringKafka消费者再试

梁丘招
2023-03-14

我正在使用Spring Kafka consumer,它从主题中获取消息并将其保存到数据库中。如果满足故障条件,例如db不可用,kafka消费者库是否提供重试机制?如果是,是否有方法设置不同的重试间隔,如第1次重试应在5分钟后进行,第2次重试应在30分钟后进行,第3次重试应在1小时后进行等。

共有1个答案

阎裕
2023-03-14

Spring Kafka随RetryingMessageListenerAdapterRetryingAcknowledgingMessageListenerAdapter一起提供。如果使用@kafkalistener,则可以提供abstractkafkalistenercontainerFactoryretrytemplate。最后一个可以注入来自Spring Retry项目的任何自定义RetryPolicyBackoffPolicy:

https://docs.spring.io/spring-kafka/reference/html/#重试-交付

还要记住,从版本2.0开始,在Spring Kafka中就有事务支持,它是基于Apache Kafka0.11.x.x中的事务支持:

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

 类似资料:
  • 在使用Spring Kafka Consumer时,我有时会收到以下错误消息。如代码片段所示,我至少实现了一次语义 1)我的疑问是,我是否错过了来自消费者的任何信息? 2) 我需要处理这个错误吗。由于 org.apache.kafka.clients.consumer.提交失败异常:无法完成偏移提交,因为消费者不是自动分区分配的活动组的一部分;消费者很可能被踢出组。 我的SpringKafka消费

  • 我需要使用consume process Product模式来处理Kafka消息,并已使用Kafka事务管理器配置了Spring Kafka侦听器容器,还设置了事务id前缀以启用Kafka事务。我正在使用批处理的ack模式,并试图了解在这种模式下,在事务中何时提交偏移量。文档似乎表明,一旦使用了轮询中的所有记录,ack模式批提交偏移量——在事务上下文中也是这样吗,即每个轮询1个事务? 或者,在使用

  • 我在站点1(3个代理)有两个集群设置cluster-1,在站点2(3个代理)有两个集群设置cluster-2。使用spring kafka(1.3.6)消费者(一台机器)并通过@KafkaListener注释收听消息。我们如何为每个集群(c1和c2)实例化多个KafkaListenerContainerFactory,并同时监听来自这两个集群的数据。 我的侦听器应该同时使用来自这两个集群的消息。

  • 我怎样才能暗示SpringKafka把每一个话题传播给一个不同的消费者呢? 干杯

  • 有人能告诉我Kafka消费者的再平衡算法是什么吗?我想了解分区计数和消费者线程是如何影响这一点的。 非常感谢。

  • 我是Spring-Kafka的新手,在使用Spring Kafka RetryTemplate处理kafka消息期间,尝试在失败或任何异常的情况下实现重试。 我使用了以下代码: //这是KafkaListenerContainerFactory: 重试模板 这是消费者工厂 当任何异常发生时,它会按照重试策略按预期重试。一旦max重试耗尽,它就会调用恢复回调方法。但很快,它会给出“java.lang