一、报错信息
18/12/21 09:56:48 INFO SyncProducer: Connected to gulfmoon:9092 for producing
18/12/21 09:56:48 INFO SyncProducer: Disconnecting from gulfmoon:9092
18/12/21 09:56:48 WARN ClientUtils$: Fetching topic metadata with correlation id 0 for topics [Set(hello_topic)] from broker [BrokerEndPoint(0,gulfmoon,9092)] failed
java.nio.channels.ClosedChannelException
at kafka.network.BlockingChannel.send(BlockingChannel.scala:110)
at kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:80)
at kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:79)
at kafka.producer.SyncProducer.send(SyncProducer.scala:124)
at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:59)
at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:94)
at kafka.consumer.ConsumerFetcherManager$LeaderFinderThread.doWork(ConsumerFetcherManager.scala:65)
at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:63)
二、解决方案
虽然是警告信息,但是在IDEA的控制台输出这些消息会严重影响查看结果的效率。因此,还是需要解决的。
出现以上异常是由于本机没有做kafka的主机名与ip的映射,
linux的目录是/etc/hosts
windows的目录是C:\Windows\System32\drivers\etc
笔者的本机是Windows,所以修改C:\Windows\System32\drivers\etc下的hosts文件,添加IP和主机名的映射就可以了。