首页 > 解决方案 > 在高负载下得到“生产请求中收到无效元数据错误”卡夫卡生产者

问题描述

我有一个生产者向 kafka 循环写入一百万条消息。在处理了大约 50 万条消息(不准确,在不同的运行中有所不同)后,它开始给出

由于 org.apache.kafka.common.errors.NetworkException 在分区 TEST-2 上的生成请求中收到无效元数据错误:在收到响应之前服务器已断开连接。现在要请求元数据更新。在此之后,我的制作人停止响应,我只能选择终止该进程。

我在 kafka 生产者配置中没有太大变化,但不确定理想情况下我应该改变什么。我更新了以下属性

  1. acks = “全部”
  2. max.in.flight.requests.per.connection = 1
  3. 重试 = 3
  4. request.timeout.ms = 20000
  5. 重试.backoff.ms=1000
  6. 逗留.ms=5
  7. 批处理大小=25600

在我看来,生产者正在不断地向 Kafka 发送消息,但没有得到回复。另外,我收到的另一条消息是上面的组协调器 IP_of_kafka_server 不可用或无效,将尝试重新发现

PS:

我使用的是 kafka-0.11,一条消息大约有 20000 个字符,并且代理有足够的空间来容纳所有消息。该主题的复制因子是 1(因为进行测试),我的集群有 3 个代理。

标签: apache-kafkakafka-consumer-apivert.xkafka-producer-api

解决方案


推荐阅读