最近几天刚试着装了下kafka_2.11-2.1.0,今天通过Kafka命令行写消息时发现报错。具体如下:
ERROR Error when sending message to topic logstash with key: null, value: 14 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.
这是什么鬼,先找找网上同仁的解决方案,有小伙伴说法是因为发布到zookeeper的advertised.host.name如果没有设置,默认取java.net.InetAddress.getCanonicalHostName().值。需要手动修改advertised.host.name和advertised.port,可是没找到这两个参数。再看,有了---config/server.config有如下描述:
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
# FORMAT:
# listeners = listener_name://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
#listeners=PLAINTEXT://:9092
将#listeners=PLAINTEXT://:9092,改成
listeners=PLAINTEXT://localhost:9092
重启kafaka,再次尝试写消息。binggo,搞定!
想想应该是kafka新版本相关参数有改动。
网友评论