关于org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.问题的解决

关于org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.问题的解决

今天在测试自己编写的kafka消息发送接收小例子时,一直报org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms的问题,

org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

记录一下解决问题的过程。
1.首先我检查了bootstrap.servers,TOPIC = "kafkatest"与集群的对应并没有问题
2.通过查阅资料,我怀疑是我的kafka依赖与集群kafka版本不一致,因为我是用ambai搭建并管理的集群,所以与传统的手搭集群还是有些区别。

  • 查看我集群的kafka版本:
    命令:
cd /usr/hdp/2.5.3.0-37/kafka/libs
ls

关于org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.问题的解决_第1张图片通过图片上我们可以看到有很多类似kafka_2.10-0.10.0.2.5.3.0-37.jar的jar文件,其中2.10代表scala的版本,0.10.0代表kafka版本,2.5.3.0代表ambari的版本
然后查看我项目中的pom.xml版本,并没有问题,所以也排除了版本不一致的可能性

  
        
            org.apache.kafka
            kafka_2.10
            0.10.0.0
        

3.排除前两种情况的可能性后,我认为可能是我kafka监听端口连接不上,所以我查看了kafka配置文件中监听端口发现显示为

listeners=PLAINTEXT://localhost:6667

我意识到这可能就是问题所在,因为我连接的是远程服务器的kafka服务,这里就需要改成IP和正确的端口号,如果是手动搭建的kafka集群,直接修改配置文件即可。

  • 命令(在kafka目录下):
cd config
vi server.properties

在这里插入图片描述
但如果你和我一样是ambari搭建的集群,那就不能直接手动改配置文件,需要在ambari管理界面去改kafka属性,因为如果集群重启,会自动还原所有手动更改的配置
关于org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.问题的解决_第2张图片
去测试一下,成功连接kafka集群,并且正常收发消息,问题解决。

你可能感兴趣的:(kafka)