3

我是 KAFKA 的初学者。我被分配了一个简单的任务,使生产者能够在发送失败时重试。我们已经为这个 send() 方法添加了一个 kafka 生产者回调,它只记录响应(在引入重试之前)。

我的目标:尝试最多 5 次重试,以防生产者 send() 失败,如果最后一次重试尝试也失败,它应该写一个日志,说明在 5 次左右重试后发送消息的尝试失败。

我做了以下。

  1. 重试 = 5
  2. retry.backoff.ms = 35000(设置此重试间隔应大于 request.timeout.ms(30000 毫秒)- 但不确定)
  3. 尝试给一个已关闭的代理 - 使生产者 send() 失败,以便我可以检查重试配置是否有效 [max.in.flight.requests.per.connection 未设置为 1,因为排序并不重要为我们。]

我想知道以下内容,

  1. kafka 是否以任何方式记录重试尝试?- 例如:在每次尝试期间记录,如“重试...”,或在所有重试结束时记录,如“在 n 次重试后失败”

  2. 我已经收到类似这样的错误连续说了 n 次。如果这是我配置的重试尝试,我很困惑。如果是这样,为什么超过5倍以上。还是与生产者重试完全无关?

    [kafka-producer-network-thread | producer-1] WARN o.apache.kafka.clients.NetworkClient:代理可能不可用

项目详情:

  1. Gradle 项目
  2. kafka-clients-0.11.0.0

请不要回答这种含糊不清的问题。由于公司政策,我无法提供完整的详细信息,并且由于无法在我公司的虚拟机中访问此站点,因此我将无法复制粘贴错误。

4

0 回答 0