windows启动kafka4.0(不再须要zookeeper)
下载Kafka4.0Kafka下载地点为: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]