何时发生 Kafka 使用者重试



Kafka 客户端上有一个重试功能。我正在努力找出何时发生重试。如果与代理的连接短暂中断,是否会发生重试?如果经纪人在 5 分钟内无法联系到怎么办?一旦代理备份,消息就会被传递吗?还是仅在 kafka 客户端的已知场景中重试?

Kafka Producer 由一个缓冲区空间池组成,该缓冲区空间池保存尚未传输到服务器的记录,以及一个后台 I/O 线程,该线程负责将这些批处理记录转换为请求并将其传输到集群。

例如,如果记录的发送速度快于它们传递到服务器的速度,则生产者将阻止max.block.ms之后它将引发异常。然后客户端假设批处理失败,并将根据retries配置重试发送批处理

org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for my-test-topic-4 due to 30024 ms has passed since batch creation plus linger time

假设如果retries配置设置为 3并且所有重试都失败,则批处理将丢失

error: Failed to send message after 3 tries

如果经纪人在 5 分钟内无法联系到怎么办?

如果代理关闭,同时如果重试已用尽,则丢失数据

最新更新