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

如何用DefaultErrorHandler(sping-kafka)替换弃用的SeekToFlutErrorHandler?

邢博文
2023-03-14

我试图找到一种方法来使用新的DefaultErrorHandler而不是弃用的SeekToFlutErrorHandler在sping-kafka 2.8.1,以覆盖重试默认行为的错误情况下。我想“停止”重试过程,所以如果发生错误,不应该重试。

现在,在一个配置类中,我有了如下bean,它可以按预期工作:

@Bean
public KafkaListenerContainerFactory<ConcurrentMessageListenerContainer<String, String>> kafkaListenerContainerFactory() {
    ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory<>();
    factory.setErrorHandler(new **SeekToCurrentErrorHandler(new FixedBackOff(0L, 1L)**));
    factory.setConsumerFactory(requestConsumerFactory());
    factory.setReplyTemplate(kafkaTemplate());
    return factory;
}

由于在这个Spring的kafka版本中,STCEH是弃用的,我试图在同一个配置类中html" target="_blank">执行以下操作:

@Bean
public DefaultErrorHandler eh() {
    return new DefaultErrorHandler(new FixedBackOff(0, 1));
}

但它似乎不起作用。如果出现错误,重试次数是默认的,正如我在日志中看到的:

[org.springframework.kafka.KafkaListenerEndpointContainer#0-0-C-1]错误DefaultErrorHandler-Backoff FixedBackOff{interval=0,currentAttempts=10,maxAttempts=9}已为topicX耗尽

如何使用DefaultErrorHandler来实现所需的行为?还是我应该用别的?

提前谢谢!

共有2个答案

冷越泽
2023-03-14

factory.set通用错误处理程序(新的默认......)

CommonErrorHandlerbean的引导自动配置需要引导2.6。

https://github.com/spring-projects/spring-boot/commit/c3583a4b06cff3f53b3322cd79f2b64d17211d0e

慕皓君
2023-03-14

>

  • factory.setErrorHandler(new SeekToFlutErrorHandler(new FixedBackoff(0L,1L));实际上,它将重试最多1次传递(2次传递尝试)。(https://docs.spring.io/spring-kafka/docs/2.7.8/reference/html/#seek-to-current)

    默认重试次数为**9(((FixedBackoff(0L,9L))而不是1(https://docs.spring.io/spring-kafka/docs/2.8.1/reference/html/#default-eh)

    您应该尝试setCommonErrorHandler而不是像factory那样的setErrorHandler。setCommonErrorHandler(新的DefaultErrorHandler(新的FixedBackOff(0L,0L))

  •  类似资料:
    • 似乎是在SpringLDAP 2。x、 OdmManager工具已被弃用,因为大多数类似odm的事情都可以由ldapTemplate完成,这是事实。但是OdmManager能够注入一个ConverterManager,它可以告诉您自定义类型转换的情况。对于类odm(ConverterManager)操作,使用ldapTemplate的等效方法是什么? 如果ldapTemplate中没有等效系统,应

    • 我对有问题: 应用程序启动时会显示警告: 警告7388---[main]组织。冬眠orm。弃用:HH90000014:发现使用弃用的[org.hibernate.id.SequenceHiLoGenerator]基于序列的id生成器;使用组织。冬眠id.enhanced。相反,SequenceStyleGenerator。有关详细信息,请参阅《Hibernate域模型映射指南》 我试图找出如何用新

    • 我们正在使用spring kafka 1.2.2。释放 我们想要的 1.一旦消息被消费并成功处理,就会在spring-kafka中提交偏移量。 我正在使用Manaul Commit/Ac认收它,它工作正常。 2.在任何异常的情况下,我们希望spring-kafka重新发送相同的消息。 我们对任何系统误差抛出RunTime异常,它由spring-kafka记录并且从未提交。 这很好,因为我们不希望它

    • 在iOS7中,该方法: 和方法: 已弃用。如何更换 和:

    • 问题内容: 需要向订单项添加自定义元。用Google搜索它,大多数文章说使用“ woocommerce_add_order_item_meta”钩子。最新版本2.3.7不推荐使用此挂钩。有人,请告诉我使用哪个挂钩。 http://docs.woothemes.com/wc-apidocs/function- woocommerce_add_order_item_meta.html 问题答案: 如果

    • 我的asp中有以下WebClient。net mvc web应用程序: 那么,有人可以建议我如何将它从WebClient更改为HttpClient吗?