kafka

整理kafka相关知识点……

安装 kafka

下载地址:Downloads - Apache KafkaIndex of /kafka

这里下载的是:kafka_2.13-3.2.0.tgz

安装之前需要先准备好JAVA环境,可以参考:java - xiaodu114.github.io

Windows

解压

绿色版,免安装的。压缩包放置目录是D:\ProgramOther,解压目录是D:\ProgramOther\kafka_2.13-3.2.0

配置

在上面的解压目录中新建data文件,之后在里面再新建两个文件夹分别存在kafkazookeeper 数据,如下:

之后修改kafkazookeeper的配置文件,如下图:

修改kafka和zookeeper配置文件

启动

D:\ProgramOther\kafka_2.13-3.2.0\bin\windows打开两个终端,分别启动zookeeper kafka,这里使用的是powershell 。命令如下:

#   首先是 zookeeper
./zookeeper-server-start.bat D:/ProgramOther/kafka_2.13-3.2.0/config/zookeeper.properties
#   其次是 kafka
./kafka-server-start.bat D:/ProgramOther/kafka_2.13-3.2.0/config/server.properties
        

启动 zookeeper

启动 kafka

创建一个 topics

第一个topics便给出了警告,名称是level1_level2_level3_001

#   第一个 topics
./kafka-topics.bat --create --topic level1_level2_level3_001 --bootstrap-server localhost:9092  
#   第二个 topics   
./kafka-topics.bat --create --topic level1-level2-level3-001 --bootstrap-server localhost:9092       
        

新建完了之后,查看一下topics

#   列出全部
./kafka-topics.bat --bootstrap-server localhost:9092 --list
#   查看某一个
./kafka-topics.bat --bootstrap-server localhost:9092 --describe --topic level1-level2-level3-001
        

创建 查看 kafka topics

WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.

生产/消费 消息

都准备好了,开始干活了。

#   生产消息
./kafka-console-producer.bat --bootstrap-server localhost:9092 --topic level1-level2-level3-001
#   消费消息
./kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic level1-level2-level3-001 --from-beginning
        

kafka 生产 消费 消息

如果你是先启动的kafka-console-producer.bat,随后就生产消息;之后才启动的 kafka-console-consumer.bat,这时需要添加from-beginning参数,如果先启动它应该就没问题了

安装 kafka eagle

下载地址:EFAKDownload - EFAK

这里下载的是:kafka-eagle-bin-2.1.0.tar.gz

Windows

解压

绿色版,免安装的。压缩包放置目录是D:\ProgramOther,解压目录是D:\ProgramOther\kafka-eagle-bin-2.1.0 。解压之后:一个文件夹kafka-eagle-bin-2.1.0和一个文件pax_global_header 。我开始以为文件夹中就是所需的文件了,没想到又是一个压缩包,不会一直递归下去吧!怀着忐忑的心情把他解压了,终于看到了bin 等目录,于是把他们一起剪切到最外边并且把pax_global_header删掉了,如下图:

kafka eagle 解压目录

配置

看了一下官方的安装教程:Install on Windows - Docs我去,so easy 啊!就四步,前两步安装JDK和检查JDK都已经弄过了,就生下了环境变量 KE_HOME的配置和启动了。有点怀疑,这玩意儿得和zookeeperkafka 链接啊……还是查了一下,果然需要配置,配置文件路径: D:/ProgramOther/kafka-eagle-bin-2.1.0/conf/system-config.properties 下面列出该文件的改动:

kafka eagle 修改配置文件

之后就是设置环境变量KE_HOME了,路径为:D:\ProgramOther\kafka-eagle-bin-2.1.0 这个比较简单,就不截图了。

启动

如官网说的,在D:\ProgramOther\kafka-eagle-bin-2.1.0\bin下执行./ke.bat 就可以了,小小的期待,看下效果图:

kafka eagle 修改配置文件

我去,┭┮﹏┭┮,一堆乱码,页面404…… 开始反思与尝试之路,是不是哪里落下了,还是哪里弄错了……

看着人家的炫酷大屏,都是泪啊!洗洗睡吧!

第二天,到了公司之后,忍不住啊,又试了一下。公司的电脑已经安装了java环境,于是只弄了kafka eagle ,没想到啊,居然成功了……怎么回事儿,到底哪里出了问题,我开始想了,两边都哪里不一样,也确实有些不一样的地方:

分析了之后,于是便安装jdk17(和家中的相同),但是安装之后没有出现jre目录,于是便查了一下,还真找到了。需要在 路径下进入终端,之后执行bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre 。最后jre出现了,配置好了之后,还是不行。我郁闷了,真的郁闷了,难道只支持jdk8?最后在郁闷中下班了,回家试试 jdk8吧!

到家之后,来不及干别的,赶紧试试jdk8,结果结果结果还是不行,郁闷升级了,啊啊啊啊啊啊!冷静了一下,想着看看ke.bat 这个文件,庆幸这个文件不大,一共60多行。一行一行的测试,直到测试到这一行%JAVA_HOME%\bin\jar -xvf %KE_HOME%\kms\webapps\ke.war ,出现了下面的错误(应该是现在才意识到,这个错误是致命的):

'C:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。

原来是这样,原来是这样,原来是这样啊,批处理文件不支持空格路径。现在想想公司的为什么可以,才恍然大悟,公司java的安装路径是D:\Java\jdk1.8.0_291\bin ,没有空格,路径合法,想想当时成功的场景,终端输出了好多文件路径,再结合现在的页面预览404和上面的-xvf ,这是解压文件的。我们可以重新安装一下jdk,但是这里安装的microsoft发行的jdk,不给我们选择的机会。于是便查了一下批处理空格路径的问题,例如:Windows批处理中对带空格路径的处理

找出了原因就好说了,于是便改了一下ke.bat文件,一共修改两处,例如:"%JAVA_HOME%"\bin\jar -xvf %KE_HOME%\kms\webapps\ke.war。修改之后,赶紧试试,结果并没有看到想要的解压压缩包,如下图:

kafka eagle 启动 ke.bat

好难啊!我开始再次查看%JAVA_HOME%,上面已经截图了,发现路径是\结尾的,拼接上\bin\jar 之后的结果是C:\Program Files\Microsoft\jdk-17.0.3.7-hotspot\\bin\jar,不会是因为多了一个 \吧!是的是的是的,这里把环境变量中的\去掉了,之后终于可以了,太难了

kafka eagle 启动 ke.bat

最后在说一下Tomcat中文乱码的问题,%KE_HOME%或者%KE_HOME%\kms路径下的 logs中找找,具体哪一个忘记了,有时间更正一下。