离线局域网环境下跨机器无法连接Kafka Broker问题求助
局域网跨机器连接Kafka Broker失败解决方案
以下是可按顺序执行的排查修复步骤:
- 第一步:确认Kafka服务监听配置生效
先停掉Kafka、ZK服务,修改配置后务必重启服务,启动顺序为先启动ZK,等ZK运行稳定后再启动Kafka。
在机器1上打开CMD执行命令验证端口监听情况:netstat -ano | findstr 9092
正常执行结果中应该显示监听地址为<ethernet_IPv4_m1>:9092,如果显示127.0.0.1:9092则说明配置未生效,重新检查server.properties文件的语法,确认listeners、advertised.listeners参数没有拼写错误,参数值没有多余空格。 - 第二步:本地端口连通性验证
在机器1本地执行端口连通性测试:Test-NetConnection <ethernet_IPv4_m1> -p 9092
如果本地都无法连通9092端口,优先排查Kafka服务是否正常启动、端口是否被其他程序占用。 - 第三步:防火墙规则验证
临时关闭两台机器的Windows Defender防火墙,再在机器2执行端口测试命令,如果关闭防火墙后可以连通,说明之前配置的端口放行规则有误:- 确认机器1的入站规则为:允许TCP协议9092端口入站,规则应用范围覆盖当前局域网所属的网络类型(专用/公用,可在Windows网络和共享中心查看当前网络类型)
- 确认机器2的出站规则为:允许TCP协议9092端口出站
- 第四步:清理ZooKeeper残留旧配置
如果之前用错误配置启动过Kafka,ZK会留存旧的元数据导致配置不生效,操作如下:- 停止Kafka、ZK服务
- 删除ZK配置中
dataDir指定目录下的version-2文件夹 - 删除Kafka根目录下
logs文件夹内的所有内容 - 按顺序重新启动ZK、Kafka服务,再测试连接
内容的提问来源于stack exchange,提问作者Robert Testerman
相关产品推荐
相关产品推荐

