Java 卡夫卡制作人:理解'retries'配置参数

Java 卡夫卡制作人:理解'retries'配置参数,java,apache-kafka,spring-kafka,kafka-producer-api,Java,Apache Kafka,Spring Kafka,Kafka Producer Api,Producer Config parameterretries的Kafka文档指出,可能出现暂时性错误时,将进行重试 这些潜在的暂时性错误是什么?什么情况会导致这些“暂时性错误” 在源代码中,我看到有一个RetriableException接口,并且TimeoutException实现了它。但我观察到,对于send(ProducerRecord record)org.apache.kafka.clients.producer的方法引发的每个超时异常,都不会发生重试。所以,我在这里错过了什么。

Producer Config parameter
retries
的Kafka文档指出,可能出现暂时性错误时,将进行重试

  • 这些潜在的暂时性错误是什么?什么情况会导致这些“暂时性错误”
  • 在源代码中,我看到有一个
    RetriableException
    接口,并且
    TimeoutException
    实现了它。但我观察到,对于
    send(ProducerRecord record)
    org.apache.kafka.clients.producer的方法引发的每个超时异常,都不会发生重试。所以,我在这里错过了什么。。。当
    retries
    param大于0时,不是所有
    retrieableexception
    都重试了吗

  • send引发的异常与retry处理的异常不同。Producer client在单独的后台线程中执行实际发送,并在调用send的线程不知道的情况下执行重试。如果重试成功,send只会发现成功(如果它等待异步结果)。如果重试次数用尽,则会出现异步故障响应。如果发送缓冲区已满,因此没有空间添加更多消息(例如,如果正在重试所有挂起的消息),则发送将同步获得异常。不确定上述内容是否有帮助,但我认为这与您的问题有关。@Chris感谢您的见解。那么,您知道我如何验证是否正在进行重试…这会记录在
    server.log
    或其他文件中吗?嗨,服务器端不知道重试,它将出现在客户端日志中-可能会提升日志级别重试次数超过配置的限制时是否存在特定异常?发送引发的异常与重试处理的异常不同。Producer client在单独的后台线程中执行实际发送,并在调用send的线程不知道的情况下执行重试。如果重试成功,send只会发现成功(如果它等待异步结果)。如果重试次数用尽,则会出现异步故障响应。如果发送缓冲区已满,因此没有空间添加更多消息(例如,如果正在重试所有挂起的消息),则发送将同步获得异常。不确定上述内容是否有帮助,但我认为这与您的问题有关。@Chris感谢您的见解。那么,您知道我如何验证是否正在进行重试…这会记录在
    server.log
    或其他文件中吗?您好,服务器端不知道重试,它会记录在客户端日志中-可能会提升日志级别重试超过配置的限制时是否存在特定异常?