【问题标题】:Kafka Producer/Consumer reconnect after kafka node failure卡夫卡节点故障后卡夫卡生产者/消费者重新连接
【发布时间】:2019-08-06 11:00:27
【问题描述】:

我有一些 kafka 消费者和生产者(Spring boot),当他们连接的 Kafka 节点出现故障(例如失败)时,他们会记录以下内容:

2019-03-15 11:02:53.278 警告 1 --- [tainer#1-23-C-1] org.apache.kafka.clients.NetworkClient :[消费者 clientId=consumer-29, groupId=OperationsConsumer] 连接到错误 节点 kafka-0.kafka-headless.test.svc.cluster.local:9092 (id: 1001 机架:空)

java.io.IOException:无法解析地址: kafka-0.kafka-headless.test.svc.cluster.local:9092

但是他们不会尝试重新连接到有效的 kafka 节点,即使我明确地将节点设置为 bootstrap.servers 属性。

如何让我的消费者在他们连接的 kafka 节点失败后重新连接到有效的 kafka 节点?

【问题讨论】:

    标签: java spring-boot apache-kafka


    【解决方案1】:

    检查您的重新连接属性:

    • 重新连接.backoff.ms
    • 重新连接.backoff.max.ms

    ……正如Kafka docs中提到的那样

    在评估重新连接成功之前是否让它们过去了?

    bootstrap.servers 中至少需要一个除向下节点之外的其他节点,以便有机会建立新连接。请同时检查您的所有节点是否都通过同一个 Zookeeper 进行通信,并且 Kafka 设置本身是否处于良好状态。

    【讨论】:

      【解决方案2】:

      根据主机名,您似乎正在使用 Kubernetes

      这在 Kubernetes 中非常复杂。

      第一次尝试做telnet hostname 9092 如果它有效,那么这是一个 Kafka 配置问题,否则它是一个 kubernetes 设置问题

      【讨论】:

        猜你喜欢
        • 2020-08-27
        • 2019-09-19
        • 1970-01-01
        • 2020-10-28
        • 2019-07-03
        • 2018-05-05
        • 2021-08-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多