Java 卡夫卡制作人:理解'retries'配置参数
Producer Config parameterJava 卡夫卡制作人:理解'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的方法引发的每个超时异常,都不会发生重试。所以,我在这里错过了什么。
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
或其他文件中吗?您好,服务器端不知道重试,它会记录在客户端日志中-可能会提升日志级别重试超过配置的限制时是否存在特定异常?