【问题标题】:Kafka - org.apache.kafka.common.errors.NetworkException卡夫卡 - org.apache.kafka.common.errors.NetworkException
【发布时间】:2018-09-15 05:33:08
【问题描述】:

我有一个连接到 Kafka(服务器 0.10.1 和客户端是 0.10.2)代理的 kafka 客户端代码。代码中有 2 个主题和 2 个不同的消费者组,还有一个生产者。偶尔从生产者代码中获取 NetworkException(2 天一次,5 天一次,...)。我们在两个消费者组的日志中看到消费者组(重新)加入信息,然后是来自生产者 future.get() 调用的 NetworkException。不知道为什么我们会收到此错误。

代码:-

final Future<RecordMetadata> futureResponse = 
producer.send(new ProducerRecord<>("ping_topic", "ping"));  
futureResponse.get();

例外:-

org.apache.kafka.common.errors.NetworkException: The server disconnected before a response was received.
java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.NetworkException: The server disconnected before a response was received.
    at org.apache.kafka.clients.producer.internals.FutureRecordMetadata.valueOrError(FutureRecordMetadata.java:70)
    at org.apache.kafka.clients.producer.internals.FutureRecordMetadata.get(FutureRecordMetadata.java:57)
    at org.apache.kafka.clients.producer.internals.FutureRecordMetadata.get(FutureRecordMetadata.java:25)

NetworkException 的 Kafka API 定义,

“发出请求时发生其他与网络相关的 IOException。 这可能是因为客户端的元数据已经过时了 向现在已死的节点发出请求。”

谢谢

【问题讨论】:

  • 您好,您找到解决方案了吗?我认为 Kafka 社区甚至不想帮助解决与此问题相关的问题,甚至他们还没有找到解决方案。
  • @Rakesh 社区无法解决很可能非常特定于安装 Kafka 的环境的网络问题。至少,需要添加生产者和代理设置,需要在每个组件上启用 TRACE 日志记录并捕获,然后如果认为是实际的 Kafka 问题,可能会提交 JIRA
  • @cricket_007 我的意思是说,如果开发人员在 StackOverflow 等论坛上遇到他们的 api 问题,如果没有为此类问题提供解决方案,他们必须做出回应。
  • @Rakesh “必须”是一个强词……我们都是志愿者。我们没有必须作出回应,尤其是在没有足够的信息可以提供的情况下

标签: apache-kafka kafka-producer-api


【解决方案1】:

我在测试 Kafka Consumer 时遇到了同样的错误。我为此使用了发件人模板。 在消费者配置中,我另外设置了以下属性:

 props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false);
 props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
 props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, 15000);

发送消息后我添加了一个线程睡眠:

   ListenableFuture<SendResult<String, String>> future =
    senderTemplate.send(MyConsumer.TOPIC_NAME, jsonPayload);

  Thread.Sleep(10000). 

有必要进行测试,但可能不适合您的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 2021-12-28
    • 2017-01-16
    相关资源
    最近更新 更多