基于麒麟系统(Kylin)的Kafka安装错误及解决,connection to node 1004 (/ip:9092) 或Error while fetching metadata with

项目场景:

软硬件背景:

Operating System: Kylin Linux Advanced Server V10 (Tercel)
操作系统:麒麟V10
内核程序:Linux 4.19.90


问题描述

复合型问题:

docker容器,监听部分启动参数:

# 外部监听,使用docker镜像时设置为外部地址,使客户端正确连接(或者可以称为客户端连接地址)
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://ip:9092 \
# (kafka)内部监听,kafka所绑定的ip:端口
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \

情况1,当使用ip作为外部监听时

--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://ip:9092 \
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \

服务器报错信息1:

connection to node 1004 (/ip:9092) could not be established. 
Broker may not be available.(org.apache,kafka.clients.NetworkClient)

提示无法连接当前外部监听地址

情况2,当使用本地(localhost/127.0.0.1)作为外部监听时,服务器恢复正常,kafka正常发送/接收消息

--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 \
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \

但客户端报错信息2:

#报错(1)获取不到元数据
Error while fetching metadata with correlation id 1430 : {questionnaireNotice=INVALID_REPLICATION_FACTOR}
#报错(2)无法连接等
connection to node -1(localhost/127.0.0.1:9092) could not be established
Bootstrap broker ip:9092 (id: -1 rack: null) disconnected

此时尚在怀疑排查docker容器中,并未想到环境问题


解决方案:

docker容器,监听部分启动参数:

--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://ip:9092 \
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \

一直处理排查容器,最终确认网络问题
本地telnet ip 9092,无论容器启动停止都不通

排查转向为网络问题,结论是麒麟系统类似CentOS 7,防火墙无论启动停止都是算启动情况,是操作系统问题(开始已经关闭防火墙)

#防火墙状态
systemctl status firewalld
#防火墙启动
systemctl start firewalld
#防火墙查询策略列表
firewall-cmd --list-ports
#防火墙增加端口策略
firewall-cmd --permanent --zone=public  --add-port=9092/tcp
#防火墙重新载入策略
firewall-cmd --reload

最终解决

未完待续...

仰望星空,砥砺前行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值