一段时间后,Kafka制作人无法更新元数据

时间:2016-06-03 10:36:46

标签: 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我无法每次都重启我的服务器。 所以任何人都可以帮我解决我的问题。

我的kafka配置如下:

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);

1 个答案:

答案 0 :(得分:0)

虽然Kafka制作人调优是一个非常难的话题,但我可以想象你的制作人试图生成的记录比传输到你的Kafka集群的记录更快。

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

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