使用java代码连接不上kafka的解决方案(生产者与消费者都没能连上)

本文已参与「新人创作礼」活动,一起开启掘金创作之路。​ ​

本篇修改设置等操作是基于上一篇kafka安装配置操作基础之上:centos7下kafka2.12-2.1.0的安装及使用_QYHuiiQ的博客-CSDN博客_kafka2.12安装

使用命令可以生产并消费成功,但是使用java代码生产的消息没能写入kafka中,尝试以下解决方案,以下是我解决问题时的倒序方法,你也可以尝试着从第一步开始:

1.把代码中的localhost改为服务器IP:

这一步很重要!!!经过多次修改尝试之后,修改了这个地方之后终于实现了用java和kafka进行通信,但是是在后面几个方案修改之上最后解决的。

在没有改为IP之前,有一个明显的感觉就是程序执行的很慢,比如循环发送消息时,间隔时间很长。改为IP之后,就执行的很快了。

2.在使用java代码与kafka通信前,需要先修改一下server.propertes文件:

进入kafka的config目录下使用下面命令修改:

vi  server.properties

进入编辑状态后找到下面这个属性

把your.host.name改为你的虚拟机ip:(记得把注释放开!!!!)

3.关闭防火墙:

先查看防火墙的状态(centos7):

禁止firewall:

禁止firewall开机启动:

关闭防火墙之后再查看状态:

4.vi  server.properties:

添加上红框部分。

把配置文件中的localhost改为IP之后,可能会出现使用上一篇博客中提到的生产者消费者生产消费消息时出现下面的情况

Broker may not be available:

这种情况下需要我们把命令中的localhost改为服务器IP即可。

如果你也是在Linux中可以实现消息生产与消费,但是使用java连接不上kafka,可以尝试以上几种操作。

经过上面的操作之后实现了生产者与Kafka的消息通信,但是消费者还是不能读取消息,后面继续研究。有的时候修改一下grooup.id就好了,但是还没有具体研究原因。

猜你喜欢

转载自juejin.im/post/7111629171536691214