赞
踩
问题:线上环境操作Kafka相关命令正常, 本地项目无法连接线上Kafka服务,启动项目一直报警告(x.x.x.x 为我的服务器外网ip)
-
- [Consumer clientId=consumer-1, groupId=g1] Connection to node -1 (/x.x.x.x:9092) could not be established. Broker may
-
或者
-
- Error while fetching metadata with correlation id
解决方法:
出现上述问题,在排除了端口未开放以及防火墙未关闭等问题后,最有可能的情况是Kafka的配置文件server.properties中的配置出现错误,而其中最关键的两个属性是listeners和advertised.listeners。
listeners: 监听器,其实就是告诉外部连接者要通过什么协议访问指定主机名和端口开放的 Kafka 服务
advertised.listeners: Advertise的含义表示宣称的、公布的,就是组监听器是 Broker 用于对外发布的。advertised_listeners 监听器会注册在 zookeeper 中。
为实现本地连接线上Kafka服务,需要将server.properties的listeners以及advertised.listeners配置如下
- listeners=PLAINTEXT://0.0.0.0:9092
-
- advertised.listeners=PLAINTEXT://x.x.x.x:9092
-
- 说明:x.x.x.x 为服务器外网ip地址
问题排查方法:
1、连接不上kafka,首先看一下9092端口有没有开放;例如阿里云服务器,可添加安全组进行开放。
2、查看服务器防火墙是否关闭,使用命令查看:
systemctl status firewalld
3、在连接线上kafka服务前,可以在本地cmd窗口使用命令查看是否能连接上线上服务:
telnet x.x.x.x 9092
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。