apache-kafka - 一段时间后,Kafka 生产者无法更新元数据

标签 apache-kafka apache-storm kafka-producer-api

我有一个 kafka 环境,其中有 3 brokers1 zookeeper .我在我的主题中推送了超过 20K 的消息。 Apache Storm正在计算生产者添加的主题中的数据。

几个小时后,当我尝试向 kafka 生成消息时,它显示以下异常

org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

重新启动 kafka 服务器后,它工作正常。
但在 production我不能每次都重新启动我的服务器。
任何人都可以帮助我找出我的问题。

我的卡夫卡配置如下:
prodProperties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"list of broker");
prodProperties.put(ProducerConfig.ACKS_CONFIG, "1");
prodProperties.put(ProducerConfig.RETRIES_CONFIG, "3");
prodProperties.put(ProducerConfig.LINGER_MS_CONFIG, 5);

最佳答案

尽管 Kafka 生产者调优是一个相当困难的话题,但我可以想象您的生产者正在尝试以比传输到 Kafka 集群更快的速度生成记录。

有制作人设置buffer.memory它定义了在阻塞之前可以使用多少内存生产者。默认值为 33554432 (33 MB)。

如果增加生产者内存,您将避免阻塞。尝试不同的值,例如 100MB。

关于apache-kafka - 一段时间后,Kafka 生产者无法更新元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37612125/

相关文章:

java - 卡夫卡 : How delete topic works

apache-kafka - 从主题中的特定分区流式传输(Kafka Streams)

apache-kafka - 如何在 server.properties 文件中配置 Apache Kafka 代理端口

java - 使用Flink时Kafka中json数据不清楚如何反序列化

java - 错误 :maven-resources-test:twitter_storm_new: java. lang.NegativeArraySizeException

apache-storm - Storm ClassNotFoundException

java - 如何使用 Log4j 和 Storm Framework 将日志写入文件?

exception - Kafka - "exactly once delivery"语义中的幂等生产者

apache-kafka - Kafka Streams 计算不同的值

java - 卡夫卡 : events published from the host machine are not consumed by the application running in Docker