【问题标题】:Kakfa retries Concept - What Basis retries will be stopped in Kafka?Kafka 重试概念 - Kafka 将停止哪些基础重试?
【发布时间】:2021-06-13 20:11:15
【问题描述】:

作为 Kafka 的新手,试图了解 Kafka 中的重试概念。将完成什么基础重试过程? 示例 Retries 参数我们设置为 7 。现在问题在这里,

  • Kafka 将全部重试 7 次?
    • 会一直尝试直到成功过程?如果是这样,卡夫卡将如何得知成功?
    • 如果这取决于任何参数,那么该参数是什么以及如何使用?

【问题讨论】:

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


    【解决方案1】:

    在分布式系统中,重试是不可避免的。从网络错误到复制问题,甚至下游依赖关系中断,大规模运行的服务必须准备好尽可能优雅地遇到、识别和处理故障。

    Kafka 将重试,直到启动的进程成功完成或重试计数为零。

    Kafka 维护每个 API 调用(生产者、消费者和 Streams)的状态,如果错误条件满足则减少重试次数。

    请通过以下 URL 中的 Sender.java 的 completeBatch 函数获取更多信息。

    https://github.com/apache/kafka/blob/68ac551966e2be5b13adb2f703a01211e6f7a34b/clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java

    【讨论】:

      【解决方案2】:

      我猜你说的是生产者重试发送失败的消息。

      来自 kafka 生产者重试属性文档 -

      "设置大于零的值将导致客户端重新发送任何 发送失败并出现潜在暂时性错误的记录。"

      这意味着如果 kafka producer 遇到的错误被认为是“可重试的”,它将重试。并非所有错误都是可重试的——例如,如果目标 kafka 主题不存在,则尝试再次发送消息是没有意义的。 但如果例如连接中断,重试是有意义的。

      重要提示 - 重试仅在您设置代理 ack != 0 时才相关。

      因此,在您的示例中,您配置了 7 次重试。

      我假设 ack 设置为不同于 0 的值,因为这样就不会尝试重试。

      如果您的消息因不可重试错误而失败,Kafka 生产者将不会尝试再次发送该消息(它实际上会“放弃”该消息并继续处理下一条消息)。

      如果您的消息因可重试错误而失败,Kafka 生产者将重试发送,直到消息发送成功或重试次数用尽(尝试了 7 次重试但均未成功)。

      Kafka 客户端生产者知道您的消息何时成功发送到代理,因为当 ack 设置为 1\all 时,kafka 代理正在“确认”收到的任何消息并通知生产者(在生产者和代理之间的一种握手中) )。

      查看确认和重试@https://kafka.apache.org/documentation/#producerconfigs

      【讨论】:

      • 如果与代理的连接断开,kafka 生产者是否会重试?
      【解决方案3】:

      Kafka reties 发生在 NotEnoughReplicaException 等临时异常中。

      在 Kafka 版本 2.0 默认重试是 Integer.MAX

      从 kafka 2.1 开始,重试受限于超时,有几个生产者配置,例如。 delivery.timeout.ms=120000ms - 默认情况下producer会重试2分钟,如果2分钟后重试不成功,请求将不会发送给broker,我们必须手动处理。

      retry.backoff.ms=100ms - 默认情况下,生产者每 100ms 将重试一次,直到 delivery.timeout 达到。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-22
        • 2019-05-29
        • 1970-01-01
        • 1970-01-01
        • 2019-12-06
        • 1970-01-01
        • 1970-01-01
        • 2019-05-22
        相关资源
        最近更新 更多