【问题标题】:Kafka how to set producer retries to InfinityKafka如何将生产者重试设置为无限
【发布时间】:2019-05-11 12:32:42
【问题描述】:
【问题讨论】:
标签:
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 来控制重试行为。