【问题标题】:Kafka how to set producer retries to InfinityKafka如何将生产者重试设置为无限
【发布时间】:2019-05-11 12:32:42
【问题描述】:

如何将 spring-boot 属性:spring.kafka.producer.retries 设置为 Integer.MAX_VALUE ?

取消设置此属性是否有效,否则默认为 0?

@查看 KIP 中的默认 kafka https://cwiki.apache.org/confluence/display/KAFKA/KIP-98+-+Exactly+Once+Delivery+and+Transactional+Messaging

【问题讨论】:

    标签: spring-boot apache-kafka spring-kafka


    【解决方案1】:

    根据Kafka docs,它默认为Integer.MAX_VALUE(至少在当前版本中),这与KIP一致。

    【讨论】:

      【解决方案2】:

      ProducerConfig.RETRIES_CONFIG 的默认值为2147483647。希望不定义重试属性会注意默认值

      【讨论】:

        【解决方案3】:

        默认是2147483647,也就是Integer.MAX_VALUE,你可以在[0,...,2147483647]之间设置

        重试 docs

        设置大于零的值将导致客户端重新发送任何发送失败的记录,并可能出现暂时性错误。请注意,此重试与客户端在收到错误后重新发送记录没有什么不同。允许重试而不将max.in.flight.requests.per.connection 设置为 1 可能会改变记录的顺序,因为如果将两个批次发送到单个分区,并且第一个失败并重试但第二个成功,那么第二个批次中的记录可能首先出现。 另外请注意,如果delivery.timeout.ms 配置的超时在成功确认之前先到期,则在重试次数用完之前生产请求将失败。 用户通常应该不设置此配置,而是使用 1delivery .timeout.ms1 来控制重试行为。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-04-22
          • 2021-08-26
          • 1970-01-01
          • 2016-06-16
          • 2021-12-01
          • 2016-01-15
          • 2020-07-10
          • 1970-01-01
          相关资源
          最近更新 更多