SpringBoot解决启动kafka:Connection to node -1 could not be established. Broker may not be available

SpringBoot解决启动kafka:Connection to node -1 could not be established. Broker may not be available

今天测试java连接kafka时启动报错,但明明在服务器上用命令是可以使用的:

生产者

在这里插入图片描述

消费者

在这里插入图片描述

Kafka安装环境以及Java版本:

kafka 配置环境:CentOS 6.5 单机版kafka (非集群)

kafka 版本:kafka_2.12-2.6.0

zookeeper版本:apache-zookeeper-3.5.8-bin

java 依赖版本:

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
    <version>0.11.0.0</version>
</dependency>

运行报错:

在这里插入图片描述

于是我开始找网上的各种解决方案,大多数人给出的答疑如下:

kafka配置文件config/server.properties中没有配置该参数,所以Broker没有对外发布,导致监听器没有注册到zookeeper中,外部连接者无法访问到我们已经开启的kafka服务。

advertised.listeners=PLAINTEXT://192.168.200.130:9092

我仔细检查了我的kafka配置文件以及zookeeper配置文件,甚至是springtboot中的application.properties文件,仍然是没有错误。

问题原因:

我就在想为什么服务器上能运行,java去连接的时候就不行呢?

排查了半个小时,我突然想到,会不会问题不出在软件层面上,而是连接上?

我查看了下防火墙的状态:

在这里插入图片描述

是开启状态

于是我把防火墙关闭,再次启动SpringBoot:

在这里插入图片描述

在这里插入图片描述

服务正常运行!!!大功告成!

Tips:

  1. 有时候微过细故,可能就耽误了工作的进度,所以在检查错误时,不要一味的关注某一个点,很有可能你的想法就被牢牢困住,无法发散出去。这种不起眼的bug耽误了我近半个小时的时间。

  2. Linux防火墙关闭分两种,为了节约大家的开发时间,给大家把命令贴出来:


CentOS 7 以上:

关闭防火墙:systemctl stop firewalld.service

关闭后,使用命令 systemctl status firewalld.service

查看防火墙状态

可以看到,disavtive(dead)的字样,说明防火墙已经关闭


CentOS 7 以下:

(1) 重启后生效

开启: chkconfig iptables on

关闭: chkconfig iptables off
(2) 即时生效,重启后失效

开启: service iptables start

关闭: service iptables stop

一个是永久关闭,一个是即时关闭,大家根据需求自行执行。

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值