Kafka收不到消息(本人遇到的情况)

博主在将Kafka从三节点集群切换到单节点后,遇到消费者无法接收消息的问题,报ClosedChannelException错误。通过检查发现Windows hosts文件中IP地址映射存在配置错误,修正后成功接收到消息。推测问题可能源于主机名冲突导致的识别错误。

报错如下
19/09/10 09:02:40 WARN ClientUtils$: Fetching topic metadata with correlation id 0 for topics [Set(nb6)] from broker [id:0,host:node01,port:9092] failed
java.nio.channels.ClosedChannelException
at kafka.network.BlockingChannel.send(BlockingChannel.scala:100)
at kafka.producer.SyncProducer.liftedTree11(SyncProducer.scala:73)atkafka.producer.SyncProducer.kafka1(SyncProducer.scala:73) at kafka.producer.SyncProducer.kafka1(SyncProducer.scala:73)atkafka.producer.SyncProducer.kafkaproducerSyncProducerSyncProducerSyncProducerdoSend(SyncProducer.scala:72)atkafka.producer.SyncProducer.send(SyncProducer.scala:113)atkafka.client.ClientUtilsdoSend(SyncProducer.scala:72) at kafka.producer.SyncProducer.send(SyncProducer.scala:113) at kafka.client.ClientUtilsdoSend(SyncProducer.scala:72)atkafka.producer.SyncProducer.send(SyncProducer.scala:113)atkafka.client.ClientUtils.fetchTopicMetadata(ClientUtils.scala:58)
at kafka.client.ClientUtils.fetchTopicMetadata(ClientUtils.scala:93)atkafka.consumer.ConsumerFetcherManager.fetchTopicMetadata(ClientUtils.scala:93) at kafka.consumer.ConsumerFetcherManager.fetchTopicMetadata(ClientUtils.scala:93)atkafka.consumer.ConsumerFetcherManagerLeaderFinderThread.doWork(ConsumerFetcherManager.scala:66)
at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:60)
19/09/10 09:02:40 WARN ConsumerFetcherManagerLeaderFinderThread:[testLAPTOP−BM8EAJV7−1568077329506−830e6395−leader−finder−thread],FailedtofindleaderforSet([nb6,0])kafka.common.KafkaException:fetchingtopicmetadatafortopics[Set(nb6)]frombroker[ArrayBuffer(id:0,host:node01,port:9092)]failedatkafka.client.ClientUtilsLeaderFinderThread: [test_LAPTOP-BM8EAJV7-1568077329506-830e6395-leader-finder-thread], Failed to find leader for Set([nb6,0]) kafka.common.KafkaException: fetching topic metadata for topics [Set(nb6)] from broker [ArrayBuffer(id:0,host:node01,port:9092)] failed at kafka.client.ClientUtilsLeaderFinderThread:[testLAPTOPBM8EAJV71568077329506830e6395leaderfinderthread],FailedtofindleaderforSet([nb6,0])kafka.common.KafkaException:fetchingtopicmetadatafortopics[Set(nb6)]frombroker[ArrayBuffer(id:0,host:node01,port:9092)]failedatkafka.client.ClientUtils.fetchTopicMetadata(ClientUtils.scala:72)
at kafka.client.ClientUtils.fetchTopicMetadata(ClientUtils.scala:93)atkafka.consumer.ConsumerFetcherManager.fetchTopicMetadata(ClientUtils.scala:93) at kafka.consumer.ConsumerFetcherManager.fetchTopicMetadata(ClientUtils.scala:93)atkafka.consumer.ConsumerFetcherManagerLeaderFinderThread.doWork(ConsumerFetcherManager.scala:66)
at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:60)
Caused by: java.nio.channels.ClosedChannelException
at kafka.network.BlockingChannel.send(BlockingChannel.scala:100)
at kafka.producer.SyncProducer.liftedTree11(SyncProducer.scala:73)atkafka.producer.SyncProducer.kafka1(SyncProducer.scala:73) at kafka.producer.SyncProducer.kafka1(SyncProducer.scala:73)atkafka.producer.SyncProducer.kafkaproducerSyncProducerSyncProducerSyncProducerdoSend(SyncProducer.scala:72)atkafka.producer.SyncProducer.send(SyncProducer.scala:113)atkafka.client.ClientUtilsdoSend(SyncProducer.scala:72) at kafka.producer.SyncProducer.send(SyncProducer.scala:113) at kafka.client.ClientUtilsdoSend(SyncProducer.scala:72)atkafka.producer.SyncProducer.send(SyncProducer.scala:113)atkafka.client.ClientUtils.fetchTopicMetadata(ClientUtils.scala:58)
… 3 more

本人操作是这样的:之前我的kafka是三节点集群的,这次由于做项目需要所以就装了个单节点的kafka,然后就在信心满满的测试kafkaAPI消费者接收消息时出现了问题,就出现了以上错误。不管我是用什么版本就是收不到,那么就不废话了,直接上解决办法吧。
由于之前本人一直使用的是三节点kafka集群,所以在windows系统里的这个目录下的hosts文件我是这么配置的
文件路径
在这里插入图片描述
在这里插入图片描述
重点看最下面四行,这个是IP地址映射,图上的是我的四台虚拟机集群,而我的伪分布式单节点IP地址是192.168.145.130,单节点的名字也是node01,所以我就把192.168.145.131改为了192.168.145.130.然后就可以接收到消息了。就是这么神奇。
本人猜测:由于我的虚拟机主机名重复冲突,所以可能会导致无法识别主机名,导致虚拟机找不到虚拟机主机地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值