我有一个 kafka 环境,其中有 3 brokers
和 1 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/