我已经在上一篇文章中将redis缓存加入到了learning-demo项目中使用,这篇文章探索kafka在后端项目中的使用。
kafka在本地安装,win11环境
去kafka官网直接下载kafka的安装包,直接解压即可,前提是安装好了java,写后端项目的电脑肯定是有java环境的呀,这不用考虑。
- 第一步,解压kafka的压缩包,gemini建议我直接解压到C盘根目录,避免中文目录影响kafka,听他的。
- 修改解压之后的kafka的配置文件,配置kafka的日志的目录,将其修改为win11下的目录,将其改为kafka文件夹下的data文件夹。

本地启动kafka
在kafka的根目录输入以下命令得到kafka的集群uuid:
.\bin\windows\kafka-storage.bat random-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是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
新开两个cmd
创建一个topic
.\bin\windows\kafka-topics.bat --create --topic test-topic --bootstrap-server localhost:9092

启动消息生产者
.\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。