Kafka在learning-demo项目中的使用

星期三, 4月 15, 2026 | 1分钟阅读 | 更新于 星期三, 4月 15, 2026

@

我已经在上一篇文章中将redis缓存加入到了learning-demo项目中使用,这篇文章探索kafka在后端项目中的使用。

kafka在本地安装,win11环境

去kafka官网直接下载kafka的安装包,直接解压即可,前提是安装好了java,写后端项目的电脑肯定是有java环境的呀,这不用考虑。

  1. 第一步,解压kafka的压缩包,gemini建议我直接解压到C盘根目录,避免中文目录影响kafka,听他的。
  2. 修改解压之后的kafka的配置文件,配置kafka的日志的目录,将其修改为win11下的目录,将其改为kafka文件夹下的data文件夹。

修改配置文件 配置日志目录

本地启动kafka

在kafka的根目录输入以下命令得到kafka的集群uuid:

.\bin\windows\kafka-storage.bat random-uuid

获取UUID命令

直接运行的话,是会报错的,这是因为我的电脑的默认的java版本是java8,但是安装的最新版kafka默认的java版本要17+,所以需要临时指定一下环境变量,将java_home环境变量临时设置成java26(我用intellij安装的)。

使用如下命令指定临时的环境变量:

set JAVA_HOME=C:\Users\hanzi\.jdks\openjdk-26

设置环境变量

将以上指定环境变量的命令放到kafka根目录下的kafka-run-class.bat脚本里面,就可以运行获取集群uuid的命令了。运行之后得到uuid:

获取UUID结果

uuid是S1lAoZERTBOE54i8z7rtIg

格式化存储目录

运行以下命令:

.\bin\windows\kafka-storage.bat format -t <你的UUID> -c .\config\server.properties --standalone

因为我本地安装的是最新版的kafka,而且是单机格式化的,所以需要加上一个参数:

--standalone

运行结果:有formatting出现,格式化成功!

格式化存储目录

启动!

接下来用这条命令启动kafka:

.\bin\windows\kafka-server-start.bat .\config\server.properties

启动Kafka

启动好了!

测试kafka

新开两个cmd

创建一个topic

.\bin\windows\kafka-topics.bat --create --topic test-topic --bootstrap-server localhost:9092

创建Topic

启动消息生产者

.\bin\windows\kafka-console-producer.bat --topic test-topic --bootstrap-server localhost:9092

启动生产者

启动消息消费者

.\bin\windows\kafka-console-consumer.bat --topic test-topic --from-beginning --bootstrap-server localhost:9092

然后,用生产者的消息窗口发消息,比如hello之类的

发送消息

然后在消费者窗口,就可以看到了,但是不支持中文啊。

消费者接收消息

我对kafka的印象

用起来有点像mqtt协议,也是要生成topic,消息生产者向这个topic发消息,消息的消费者监听这个topic,得到消息。

应该也是支持一个生产者多个消费者的。在同一个topic下。也有点像群聊一样。

感觉kafka可以用作在后端项目内部的各个模块之间传递信号。

问了以下gemini,确实是这样,在后端的异步解耦、削峰填谷、多个模块通信的场景都会使用kafka。

© 2026 My Blog

🌱 Powered by Hugo with theme Dream.