美丽的神话 发表于 2025-4-17 21:38:22

windows启动kafka4.0(不再须要zookeeper)

下载Kafka4.0

  Kafka下载地点为:https://kafka.apache.org/downloads
  留意:下载Binary,不要下载Source,因为它是源码。也不要因为Binary是.tgz文件就以为它是Linux版本,其实Linux和Windows都是这个文件。背面会表明

https://i-blog.csdnimg.cn/direct/76d3195cd80941e68e350b0f277870ce.png

  下载后入下图所示:

https://i-blog.csdnimg.cn/direct/b9520a0a44df49b1883d7a8a2ea03f1e.png

  解压后,如下图所示:

https://i-blog.csdnimg.cn/direct/6fe5cecf987248b596accdfde5d84551.png

  留意,解压后的目录跟压缩包的名字是一样的,都是kafka_2.13-4.0.0,我当地是14.kafka_2.13-4.0.0,是因为我改过。而且logs目录是我新建的,并不是Kafka自带的。背面会提到

  可能有些同学有疑惑了。怎么Kafka的压缩包是kafka_2.13-4.0.0,那么长的数字是什么意思啊。前面的2.13是编译Kafka源代码的Scala编译期版本,真正的Kafka版本号实际上是4.0.0。此中4代表大版本号,中间的0表现小版本号,最后的0表现修订版本号,如果是1,就表现第一次打补丁,如果是2,表现第二次打补丁
windows启动脚本

  可以看到,bin目录下满是.sh文件,这明显是Linux下的脚本。但是第一行有个windows文件夹,windows情况下的启动脚本就在这个文件夹下

https://i-blog.csdnimg.cn/direct/c9828bf40b52484fa010bf683a88eb4d.png

  windows目录下都是.bat文件,此中启动Kafka的脚本文件就是kafka-server-start.bat

https://i-blog.csdnimg.cn/direct/b3e40044c663435faf7a816233c4a72f.png
修改配置文件

  config目录下有个server.properties文件

https://i-blog.csdnimg.cn/direct/613f83ed9c204e3582dea9aa38475c7e.png

  只须要修改log.dirs,值是存放日志的目录。前面提到过,kafka目录下的logs目录是我新建的,不是kafka自带的。留意:使用两个反向斜杠

https://i-blog.csdnimg.cn/direct/9fbfdafd09124560aec1a1baa9c9c6ea.png

  由于Kafka4.0版本不须要Zookeeper,所以不须要再配置Zookeeper了。这点非常好,省了不少事
JDK 要求

  Kafka4.0要求jdk17,还在使用jdk8的兄弟必须要升级了
格式化存储目录

  在bin/windows目录下,实行脚本,会生成一个随机的cluster.id(集群id)
kafka-storage.bat random-uuid
  虽然有error错误信息,但是这个不影响。我的uuid是5ZClM9zaTmWjhqHrZuBttQ

https://i-blog.csdnimg.cn/direct/3d014e967fd743578c767c544d8d1384.png

  下面用这个uuid来作为cluster.id(集群id)来格式化日志
kafka-storage.bat format --standalone -t 5ZClM9zaTmWjhqHrZuBttQ -c ..\..\config\server.properties
https://i-blog.csdnimg.cn/direct/54aac5065d934162ab4801bda3893f05.png

  实行命令后,会在logs目录下主动生成元数据信息。不管是否有error信息,只要logs目录下有生成meta.properties文件和__cluster_metadata-0目录就行

https://i-blog.csdnimg.cn/direct/0045b3f315914d9ea9ac29ac0214726d.png
启动kafka

  准备工作已经做完了,最后只须要启动kafka就行
kafka-server-start.bat ..\..\config\server.properties

  别的博客说启动后会打印Kafka的版本信息,但是我的并没有打印,奇怪的很,但是也没报错
https://i-blog.csdnimg.cn/direct/6348f926087143b2ac7b961f782e406e.png

  上图中有个告诫,大概意思就是Log4j 1.x已经过期了,须要使用Log4j 2.x。这只是告诫,不是报错,不影响Kafka启动

  有个题目,上图中我启动了Kafka,那我下班电脑关机了,第二天上班又须要重新启动Kafka时,须要把所有脚本重新实行一遍吗?
  不须要!!!只须要把最后的启动脚本实行一下就行,也就是下面的脚本:
kafka-server-start.bat ..\..\config\server.properties

测试

  我当地写了个发送消息的GET哀求

https://i-blog.csdnimg.cn/direct/82713b6bd0064f5e81af6f560ec0673b.png

  对应的service内容如下:

https://i-blog.csdnimg.cn/direct/ec47af060c2f4745b6bd01ec90d7e7b9.png

  我还写了个消费者

https://i-blog.csdnimg.cn/direct/1101a2540f8c4e33998072293992199e.png

  正常来说,生产者发送消息,消费者就能监听到并消费。下面我启动项目,由于是GET哀求,欣赏器输入接口地点就能调用
  可以看到,发送消息是乐成的

https://i-blog.csdnimg.cn/direct/cb7510dbe3a648b1b21c7277d315bc2c.png

  再来看消费者,消费者果然走到了断点,说明消费者监听到了并开始消费。再看看日志中打印的Cluster ID,这就是我们前面实行脚本生成的uuid作为集群ID。这不呼应上了吗

https://i-blog.csdnimg.cn/direct/58b5023561b1496e925d47428ff89806.png

启动乐成

  到此,说明我在windows上启动Kafka是乐成的
遇到的题目

  不要把Kafka压缩包放在一个很深的目录下去解压。比如我一开始的目录是这样的,启动脚本所在的目录非常深,实行命令报错:
  输入行太长
  命令语句不正确

https://i-blog.csdnimg.cn/direct/9ba5b89617924e02bf232b51df0d2715.png

  报错信息太过简单,看得我一脸懵逼,百度都百度不到原因,DeepSeek都查不到。偶然中实验把Kafka压缩包放到一个不是那么深的目录下去解压,实行命令就能乐成了

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: windows启动kafka4.0(不再须要zookeeper)