【问题标题】:Override retry attempts with spring cloud stream kafka bindings consumer and DLQ enabled使用 spring 云流 kafka 绑定消费者和启用 DLQ 覆盖重试尝试
【发布时间】:2021-12-25 16:52:11
【问题描述】:

我正在使用带有 kafka 绑定的 spring 云流。消费者使用spring.cloud.stream.kafka.bindings.function配置配置,开启DLQ。

spring.cloud.stream.kafka.bindings.consumeTest-in-0:
    consumer:
        batch-mode: false
        ackEachRecord: true
        dlqName: test.file.error
        enableDlq: true
        dlqProducerProperties.configuration.key.serializer: org.apache.kafka.common.serialization.StringSerializer
        dlqProducerProperties.configuration.value.serializer: org.apache.kafka.common.serialization.StringSerializer
        maxAttempts: 5
        backOffInitialInterval: 5000
        backOffMaxInterval: 5000

当我从一个主题消费一条消息,并发生异常时,我看到它重试了 3 次,并将消息发送到 DLQ。我已将 maxAttempts 配置为 5,但我无法覆盖默认值 3。

我正在使用 spring kafka (2.7.8) 和 spring cloud (2020.0.4)。 如何覆盖重试尝试和 backOff 间隔参数?

我注意到如果我在默认消费者级别(如下所示)添加参数,它们会被选中,但不是在函数绑定级别:

spring.cloud.stream.default.consumer:
    maxAttempts: 5
    defaultRetryable: true
    backOffInitialInterval: 5000
    backOffMaxInterval: 5000
    backOffMultiplier: 1

谢谢

【问题讨论】:

    标签: spring-boot spring-kafka spring-cloud-stream


    【解决方案1】:

    把它放在spring.cloud.stream.bindings.consumeTest-in-0.consumer.maxAttempts=5 下,而不是你的 spring.cloud.stream。kafka.bindings.consumeTest-in-0.consumer.maxAttempts=5。


    请看这里:Common Properties

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      • 1970-01-01
      • 2019-05-09
      • 2019-04-22
      • 1970-01-01
      • 2020-11-02
      • 2020-11-11
      相关资源
      最近更新 更多