一,启动Kafka报错:
报错的一些情况如下图所示: ERROR Error while loading log dir D:\Download\kafka_2.11-1.0\kafka_2.11-1.0\kafka_2.11-1.0.0\Downloadkafka_2.11-1.0kafka_2.11-1.0kafka_2.11-1.0.0logs (kafka.log.LogManager)
java.nio.file.FileSystemException: D:\Download\kafka_2.11-1.0\kafka_2.11-1.0\kafka_2.11-1.0.0\Downloadkafka_2.11-1.0kafka_2.11-1.0kafka_2.11-1.0.0logs\__consumer_offsets-48\00000000000000000000.timeindex: 另一个程序正在使用此文件,进程无法访问。
原因:该问题是因为在关闭启动命令窗口时,直接点击右上角的×号关闭,下次启动就会出现该问题。
正确的关闭窗口方法:在启动窗口按ctrl+C,会出现如下界面
输入字母---Y则可成功关闭。需要注意的是该选择可能需要等待一会。这样子关闭窗口下次就可以正常启动了。
解决:找到启动目录生成的文件删除掉,再重新启动就可以了,它会再自动生成相应的文件并且之前的topic还存在。
二,发送,接受消息报错
a[2019-10-16 21:01:09,094] WARN [Producer clientId=console-producer] Connection to node 0 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
该问题可能有以下两种情况导致:
1,如上问题一启动Kafka报错连贯引发的问题,是因为未能建立到节点的连接代理可能无法使用 通过上述方法就可以解决。但是在这种问题下查看topic的命令还是可以进行执行的。
2,是config下面的service.properties文件中的listeners=PLAINTEXT://master:9093配置有关如果按照上面的listeners说建立发送者的命令应该是这样子的kafka-console-producer.bat --broker-list master:9093 --topic test。
注意:即使listeners=PLAINTEXT://127.0.0.1:9093中的127.0.0.1是代表本地,但是命令中也不能用localhost来代替。
未解决的问题:命令窗口接收消息乱码问题![](https://i-blog.csdnimg.cn/blog_migrate/e00c1131304489b5ba1e1a7f96e24ab1.png)
经过百度暂时没有找到解决方法,该问题有可能是windows系统环境下的编码为GBK而Kafka编码为Utf-8从而导致解码过程中的乱码问题。在Linux环境下没有这个问题。 还望各位知道解决方法的大佬能够指教一下。
有什么问题欢迎大家在下方评论,我们一起探讨。