Kafka如何将生产者重试设置为Infinity

时间:2018-12-10 15:15:31

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

如何将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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

默认情况下为2147483647,即Integer.MAX_VALUE,您可以在[0,...,2147483647]之间进行设置

重试 docs

  

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

答案 2 :(得分:2)

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