在Kafka中,如果参数"重试"设置为1或更多,然后自动重试?

时间:2017-08-06 05:49:23

标签: hadoop apache-kafka kafka-producer-api

retries参数说明

  

设置大于零的值将导致客户端重新发送任何发送失败但可能出现暂时性错误的记录。请注意,此重试与客户端在收到错误时重新发送记录时没有什么不同。

我想要确认的是kafka框架自动进行的重试,或者客户端需要进行任何其他处理。
如果它自动完成,并说retries设置为1。如果record的发送也在第二次尝试时失败,那么当kafka重试时以及当它将停止重试时,kafka会以不同的方式通知我相应的错误消息。

1 个答案:

答案 0 :(得分:2)

是的,您是对的,Kafka客户端会自动进行重试,而无需用户应用程序进行任何其他处理。 客户端库在重试时没有通知您,但它遵循您的配置retry.backoff.ms参数定义"尝试重试失败之前等待的时间请求给定主题分区"如官方文档中所述。 当所有尝试都失败时,您将在传递给KafkaProducer send方法的回调中收到异常(RecordMetadata为null,因为没有发送记录)或者通过send返回的Future。